컴퓨터 체스
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
컴퓨터 체스는 컴퓨터가 체스 게임을 할 수 있도록 프로그래밍하는 분야이다. 1950년 클로드 섀넌의 논문 발표를 시작으로, 무차별 대입 검색, 알파-베타 가지치기 등의 기술이 개발되었다. 18세기부터 체스 기계에 대한 아이디어가 있었지만, 디지털 컴퓨터의 발달과 함께 본격적인 연구가 시작되었다. 1990년대 후반에는 컴퓨터가 인간 체스 챔피언을 능가하기 시작했으며, 1997년 딥 블루가 가리 카스파로프를 이긴 것이 대표적인 사례이다. 컴퓨터 체스 프로그래밍은 검색, 지식, 평가를 기반으로 하며, 몬테카를로 트리 탐색과 같은 기술이 사용된다. 컴퓨터 체스 대회는 1970년대부터 시작되었으며, 2024년 대회를 마지막으로 종료되었다. 현재는 TCEC와 같은 온라인 대회가 활발히 진행되고 있다. 신경망 기술은 컴퓨터 체스 엔진의 평가 함수에 사용되며, 특히 효율적으로 업데이트 가능한 신경망의 등장은 엔진 성능 향상에 기여했다. 체스 엔진, 데이터베이스, 온라인 서비스, 훈련 프로그램 등 다양한 소프트웨어가 개발되어 사용되고 있다.
더 읽어볼만한 페이지
- 컴퓨터 체스 - 딥 블루 대 가리 카스파로프
딥 블루 대 가리 카스파로프는 1996년과 1997년에 걸쳐 인공지능 딥 블루와 체스 세계 챔피언 가리 카스파로프가 대결한 사건으로, 1997년 딥 블루가 승리하며 인공지능이 인간을 이긴 최초의 사례로 기록되었다. - 컴퓨터 체스 - NNUE
- 게임 인공지능 - 구글 딥마인드
구글 딥마인드가 개발한 스타크래프트 II 인공지능 알파스타는 프로게이머를 상대로 뛰어난 실력을 입증했으며, 딥마인드는 이를 인공 일반 지능 개발을 위한 시도로 간주한다. - 게임 인공지능 - 컴퓨터 올림피아드
컴퓨터 올림피아드는 컴퓨터 프로그램 간의 지능 대결을 펼치는 대회로, 1989년 런던에서 시작되어 1992년 중단되었다가 2000년에 부활했으며, 국제 컴퓨터 게임 협회가 매년 체스, 바둑, 브리지 등 다양한 게임의 컴퓨터 프로그램들을 대상으로 대회를 개최한다. - 체스 - 아티피셜 캐슬링
- 체스 - 대국 시계
대국 시계는 체스, 장기, 바둑 등 시간제한 경기에서 사용되는 도구로, 모래시계에서 디지털 시계로 발전해 왔으며 다양한 시간 측정 방식과 편의 기능을 제공하고, 공정한 경기 진행을 위한 규칙과 게임별 사용 방식의 차이가 있다.
컴퓨터 체스 | |
---|---|
컴퓨터 체스 | |
개요 | |
분야 | 인공지능, 컴퓨터 과학 |
목표 | 체스를 플레이할 수 있는 컴퓨터 하드웨어 및 소프트웨어 |
역사 | |
최초의 체스 프로그램 | 1951년 앨런 튜링 |
최초의 컴퓨터 체스 토너먼트 | 1966년 |
딥 블루 | 1997년 딥 블루가 게리 카스파로프를 이김 |
주요 기술 | |
보드 표현 | 0x88 비트보드 |
평가 함수 | 심층 신경망 (트랜스포머) 어텐션 효율적으로 업데이트 가능한 신경망 수제 평가 함수 기물-위치 테이블 강화 학습 확률적 경사 하강법 지도 학습 텍셀 튜닝 비지도 학습 |
그래프 및 트리 탐색 알고리즘 | 미니맥스 알파-베타 가지치기 주요 변동 탐색 정지 탐색 몬테카를로 트리 탐색 |
체스 컴퓨터 | |
체스 컴퓨터 종류 | 벨 ChessMachine ChipTest Cray Blitz 딥 블루 딥 소트 HiTech 히드라 메피스토 Saitek |
체스 엔진 | |
체스 엔진 종류 | AlphaZero Chess Tiger Crafty CuckooChess Deep Fritz Dragon by Komodo Chess Fairy-Max 프리츠 프루트 GNU Chess HIARCS 후디니 이카루스 주니어 KnightCap 코모도 Leela Chess Zero MChess Pro 미튼스 MuZero 나움 레벨 Rybka 슈레더 스솅 SmarThink 스톡피시 토치 Turochamp 자파 |
2. 역사
컴퓨터가 체스를 두도록 만들려는 시도는 오래전부터 있었다. 18세기 볼프강 폰 켐펠렌의 터키인과 같이 체스를 두는 것처럼 보이는 자동 인형이 등장했지만, 이는 실제 기계가 아닌 사람이 숨어서 조종하는 장치였다. 실제 기계적인 시도로는 1912년 레오나르도 토레스 이 케베도가 만든 엘 아헤드레시스타가 있으며, 이는 특정 엔드게임 상황을 처리할 수 있었다.
현대적인 컴퓨터 체스의 이론적 기반은 1940년대와 1950년대에 마련되었다. 클로드 섀넌은 1950년 컴퓨터 체스 프로그래밍의 기본 원리를 제시했고, 앨런 튜링은 1951년 최초의 체스 프로그램 알고리즘(투로챔프)을 개발했다.[54][55] 1956년 로스 알라모스 체스가 실제 컴퓨터에서 실행되었고, 알파-베타 가지치기 알고리즘이 발명되었다.
1960년대와 1970년대에는 프로그램 성능이 향상되어 Mac Hack VI(1967년)가 토너먼트에서 인간을 이겼고, 컴퓨터 체스 대회가 시작되었다. 1980년대에는 크레이 블리츠와 딥 소트 등이 마스터 및 그랜드마스터 수준의 인간 선수들과 경쟁하기 시작했다.
컴퓨터 체스 역사의 전환점은 1997년 IBM의 슈퍼컴퓨터 딥 블루가 당시 세계 챔피언 가리 카스파로프를 꺾은 사건이다. 이후 개인용 컴퓨터 프로그램들도 급격히 발전하여 2000년대 중반에는 인간 최고수를 능가하게 되었다.
2010년대 후반, 인공지능 기술, 특히 딥러닝을 활용한 알파제로가 등장하여 기존 체스 엔진들을 압도하며 새로운 시대를 열었다. 이후 효율적으로 업데이트 가능한 신경망(NNUE) 기술 등이 도입되면서 컴퓨터 체스의 수준은 인간의 능력을 훨씬 뛰어넘게 되었다.[51][52] 오늘날 컴퓨터는 체스 선수들에게 강력한 분석 도구로 활용되고 있다.
2. 1. 초기 역사 (인간과의 경쟁 이전)
18세기 터키인이나 19세기 아지브와 같이 체스를 두는 것처럼 보이는 자동 인형이 등장했지만, 이는 실제 기계가 아닌 사람이 내부에 숨어 조종하는 일루전이었다.최초의 실제 체스 기계는 1912년 스페인의 기술자 레오나르도 토레스 이 케베도가 만든 엘 아헤드레시스타로 간주된다.[96] 이 기계는 킹과 룩 대 킹 엔드게임만을 수행할 수 있었지만, 전기기계 장치를 통해 판의 상황을 인식하고 말을 움직여 상대 킹을 체크메이트시키는 것이 가능했다.
디지털 컴퓨터의 등장 이전, 1940년대에 컴퓨터 체스의 이론적 기반이 마련되기 시작했다. 1941년 콘라트 추제는 플랑칼퀼 프로그래밍 언어를 사용하여 체스 알고리즘을 설계했으나 제2차 세계 대전으로 인해 1970년대까지 발표되지 못했다. 1948년 노버트 위너는 그의 저서 ''사이버네틱스''에서 미니맥스 검색과 평가 함수를 이용한 체스 프로그램 개발 방법을 설명했다. 1949년 벨 연구소의 클로드 섀넌은 "체스 두는 컴퓨터 프로그래밍"이라는 논문을 발표하여 컴퓨터 체스의 기본 원리(탐색 깊이 제한, 평가 함수 등)와 전략을 제시하며 현대 컴퓨터 체스 연구의 기초를 다졌다. 1951년 앨런 튜링은 실제 컴퓨터 없이 종이와 연필만으로 작동하는 체스 프로그램(투로챔프)의 알고리즘을 개발하고 직접 게임을 시뮬레이션하기도 했다.[54][55]
1950년대에 들어 실제 컴퓨터에서 체스 프로그램이 동작하기 시작했다. 1952년 디트리히 프린츠는 맨체스터 대학교의 Ferranti Mark 1 컴퓨터에서 간단한 체스 문제를 푸는 프로그램을 작성했다. 1956년 로스앨러모스 국립 연구소에서는 MANIAC I 컴퓨터를 사용하여 6x6 크기의 단순화된 체스판에서 작동하는 로스 알라모스 체스 프로그램을 개발했다. 같은 해 존 매카시는 탐색 효율을 크게 높이는 알파-베타 가지치기 알고리즘을 발명했다. 1957년에는 알렉스 번스타인이 IBM 704 컴퓨터에서, 그리고 소련의 프로그래머들이 BESM 컴퓨터에서 각각 체스 게임 전체를 둘 수 있는 초기 프로그램을 개발했다. 1958년 카네기 멜론 대학교의 앨런 뉴웰, 허버트 사이먼 등이 개발한 NSS 프로그램은 알파-베타 가지치기를 적용한 최초의 체스 프로그램이 되었다.
1960년대에는 프로그램의 성능이 점차 향상되고 컴퓨터 간의 대결도 이루어졌다. 1962년 MIT에서 개발된 코토크-매카시 프로그램은 제법 그럴듯한 수준의 플레이를 보여주었다. 1963년에는 그랜드마스터 데이비드 브론스타인이 소련의 M-20 컴퓨터에서 실행되던 초기 체스 프로그램을 상대로 승리했다.[57] 1966년부터 1967년까지 모스크바의 이론 및 실험 물리학 연구소(ITEP) 프로그램과 스탠퍼드 대학교의 코토크-매카시 프로그램 간에 최초의 컴퓨터 체스 대결이 9개월간 통신으로 진행되었으며, ITEP 프로그램이 2승 2무로 승리했다.[97][98] 1967년 리처드 그린블랫 등이 개발한 Mac Hack VI는 전치표를 도입하여 성능을 향상시켰고, 실제 체스 토너먼트에서 인간 선수를 상대로 승리한 최초의 프로그램이 되었다. 전 세계 체스 챔피언 미하일 보트빈니크는 이 시기 컴퓨터 체스 연구에 깊은 관심을 보이며, 특히 인간의 사고 과정을 모방하는 선택적 탐색 방식의 알고리즘 개발에 기여하고자 노력했다. 그는 ITEP 팀의 컨설턴트로 활동했으며, 이후 카이사 프로그램 개발에도 조언했다. 1968년 스코틀랜드 체스 챔피언 데이비드 레비는 AI 개척자 존 매카시와 도널드 미치에게 10년 안에 컴퓨터 프로그램이 자신과의 체스 경기에서 이길 수 없다는 데 500GBP를 걸었다.
1970년대는 컴퓨터 체스 대회가 시작되고 상업적인 제품이 등장하는 등 본격적인 발전이 이루어진 시기이다. 1970년 몬티 뉴본과 컴퓨팅 기계 협회(ACM) 주최로 첫 북미 컴퓨터 체스 선수권 대회가 뉴욕에서 열렸고, 컨트롤 데이터 코퍼레이션(CDC)의 슈퍼컴퓨터에서 동작하는 CHESS 3.0 프로그램이 우승했다. 1971년 켄 톰슨은 유닉스 초기 버전을 위해 "체스"라는 자신의 첫 체스 프로그램을 작성했다.[58] 1974년에는 첫 세계 컴퓨터 체스 선수권 대회(WCCC)가 열려 소련의 카이사 프로그램이 우승했다. 1975년 노스웨스턴 대학교에서 개발된 체스 4.5는 전폭 검색, 비트보드, 반복 심화 등의 기술을 통합하여 이후 체스 프로그램 개발의 표준적인 구조를 제시했다.[59] 이 프로그램은 다음 해 WCCC에서 우승했다. 1976년에는 피터 R. 제닝스가 개발한 마이크로체스가 출시되어 최초로 상업적으로 판매된 마이크로컴퓨터용 체스 프로그램이 되었다.[60]

1977년에는 피델리티 일렉트로닉스의 체스 챌린저와 어플라이드 콘셉츠의 보리스 같은 전용 체스 컴퓨터가 시장에 등장했다. 같은 해 국제 컴퓨터 체스 협회(ICGA)가 설립되어 컴퓨터 체스 연구와 대회 운영을 지원하기 시작했다. 1978년, 데이비드 레비는 10년 전의 내기에서 체스 4.7을 4½–1½ 점수로 이겨 승리했다. 비록 레비가 이겼지만, 컴퓨터는 6경기 중 1승을 거두며 토너먼트 조건에서 국제 마스터를 상대로 첫 승리를 기록했다.[9] 1979년 레비는 프레데릭 프리델이 주선한 TV 중계 경기에서 체스 4.8(CDC 사이버 176에서 실행)과 89수 무승부를 기록했다. 이 시기까지 컴퓨터는 아직 최고 수준의 인간 선수에게는 미치지 못했지만, 꾸준히 발전하며 인간과의 경쟁 가능성을 보여주기 시작했다.
2. 2. 발전과 인간과의 경쟁

체스를 두는 기계를 만들려는 아이디어는 18세기로 거슬러 올라간다. 볼프강 폰 켐펠렌이 만든 터키인 (1769년)이나 찰스 후퍼의 아지브 (1868년) 같은 자동 인형이 있었지만, 이는 사람이 안에 숨어 조종하는 장치였다. 실제 기계적인 시도로는 스페인의 레오나르도 토레스 케베도가 1912년에 만든 엘 아헤드레시스타가 있다. 이 기계는 킹과 룩 대 킹 엔드게임만 둘 수 있었지만, 전기기계 장치로 판세를 읽고 말을 움직이는 최초의 체스 기계로 평가받는다.[96]
본격적인 컴퓨터 체스 연구는 디지털 컴퓨터의 등장과 함께 시작되었다. 콘라트 추제는 1941년 이미 체스 알고리즘을 구상했지만[22] 전쟁 등으로 인해 늦게 알려졌다. 1949년 벨 연구소의 클로드 섀넌은 "체스 두는 컴퓨터 프로그래밍" 논문을 통해 평가 함수와 탐색 트리 등 컴퓨터 체스의 기본 원리를 제시했다.[22] 앨런 튜링은 1951년 최초로 체스 게임 전체를 둘 수 있는 알고리즘(투로챔프)을 종이에 설계하고 직접 손으로 계산하며 시뮬레이션했다.[54][55]
'''초기 발전 (1950년대 ~ 1970년대)'''
실제로 작동하는 최초의 체스 프로그램은 1956년 로스앨러모스 국립 연구소에서 MANIAC I 컴퓨터로 개발한 로스 알라모스 체스였으나, 6x6 크기의 작은 판을 사용했다. 같은 해 존 매카시는 탐색 효율을 높이는 알파-베타 가지치기 검색 알고리즘을 발명했다. 1957년에는 알렉스 번스타인과 소련 프로그래머들이 각각 IBM 704와 BESM 컴퓨터를 이용해 완전한 체스 게임을 둘 수 있는 프로그램을 개발했다. 1958년 NSS 프로그램은 알파-베타 가지치기를 사용한 최초의 프로그램이 되었다.
1962년 MIT에서 개발된 코토크-매카시는 제법 그럴듯하게 체스를 두는 최초의 프로그램으로 평가받는다. 1966년부터 1967년까지 모스크바의 이론 및 실험 물리학 연구소(ITEP) 프로그램과 스탠퍼드 대학교의 코토크-매카시 프로그램 간에 최초의 컴퓨터 체스 대결이 열렸고, ITEP 프로그램이 승리했다.[97][98] 1967년 리처드 그린블랫 등이 개발한 Mac Hack VI는 전치표를 도입하고 정교한 이동 선택 휴리스틱을 사용하여 토너먼트에서 인간을 이긴 최초의 프로그램이 되었다.
1970년 몬티 뉴본과 컴퓨팅 기계 협회(ACM) 주최로 첫 북미 컴퓨터 체스 선수권 대회가 열렸고, 컨트롤 데이터 코퍼레이션(CDC)의 슈퍼컴퓨터에서 실행되는 체스 3.0 프로그램이 우승했다. 1974년에는 첫 세계 컴퓨터 체스 선수권 대회가 열려 소련의 카이사 프로그램이 우승했다. 노스웨스턴 대학교의 체스 프로그램 시리즈(체스 3.0 ~ 4.x)는 비트보드, 반복 심화 등 혁신적인 기술을 도입하며 1970년대 컴퓨터 체스계를 주도했다.[59]
'''인간과의 경쟁 본격화 (1970년대 후반 ~ 1990년대 초반)'''
1968년 국제 마스터 데이비드 레비는 10년 안에 어떤 컴퓨터도 자신을 이길 수 없을 것이라는 내기를 걸었다. 1970년대 후반, 컴퓨터 체스 프로그램의 실력은 급격히 향상되었다. 1976년 노스웨스턴 대학교의 Chess 4.5는 인간 토너먼트(폴 매슨 아메리카 체스 선수권 Class B)에서 우승한 최초의 프로그램이 되었다. 1978년 레비는 Chess 4.7과의 대결에서 승리하여 내기에서는 이겼지만, 6경기 중 1경기를 내주며 컴퓨터가 마스터급 선수에게 거둔 최초의 승리를 허용했다.[9]
1980년 켄 톰슨이 개발한 전용 하드웨어 체스 머신 Belle은 마스터급 선수들을 이기기 시작했다. 1981년 크레이 블리츠는 미시시피 주 선수권 대회에서 마스터급 선수(조 센테프)를 꺾고 우승하며 마스터 등급을 획득한 최초의 컴퓨터가 되었다. 1982년까지 여러 프로그램이 마스터 수준에 도달했다. 이러한 발전은 주로 하드웨어 속도 향상에 따른 검색 깊이 증가 덕분이었다. 컴퓨터는 여전히 "어색하고 비효율적인" 체스를 두었지만, 인간보다 실수를 훨씬 적게 저지르며 승리했다.[22]
1988년 카네기 멜론 대학교에서 개발한 하이테크는 그랜드마스터 아놀드 덴커를 이겼고, 딥 소트는 벤트 라르센을 포함한 여러 그랜드마스터를 꺾고 토너먼트에서 공동 우승하며 2745라는 높은 엘로 레이팅을 기록했다.[63][64] 1989년 딥 소트는 레비와의 대결에서 4-0으로 완승했다. 그러나 같은 해 세계 챔피언 가리 카스파로프와의 대결에서는 딥 소트가 완패하며 아직 인간 최고 수준에는 미치지 못함을 보여주었다.
'''세계 챔피언과의 대결 (1990년대 후반 ~ 2000년대)'''
1996년 IBM이 개발한 슈퍼컴퓨터 딥 블루는 가리 카스파로프와의 6번기 대결에서 1국을 승리하며 정규 시간 제어 경기에서 현직 세계 챔피언을 이긴 최초의 컴퓨터가 되었다. 하지만 최종 결과는 카스파로프의 3승 1패 2무 승리였다.
1997년 성능이 향상된 딥 블루는 카스파로프와의 재대결에서 2승 1패 3무(3½–2½)로 승리했다. 이 승리는 컴퓨터 체스 역사상 중요한 이정표가 되었지만, 경기 중 프로그래머 개입 가능성 등 논란도 있었다.[100] 이 대결은 ''게임 오버: 카스파로프와 머신''이라는 다큐멘터리로 제작되기도 했다.
딥 블루 이후 상업용 체스 프로그램들도 빠르게 발전했다. 1998년 Rebel 10은 당시 세계 랭킹 2위 비스와나탄 아난드를 상대로 승리했지만, 속기 게임 위주였다.[12] 2002년 블라디미르 크람니크는 딥 프리츠와 8번기 대결(바레인 두뇌 대결)을 벌여 4-4 무승부를 기록했다. 2003년 카스파로프는 딥 주니어 및 X3D 프리츠와 각각 무승부를 기록했다.
2005년 전용 체스 컴퓨터 히드라는 마이클 아담스를 5½–½로 압도했다.[13] 2006년 크람니크는 딥 프리츠와의 재대결에서 2-4로 패배했다. 이 경기에서 크람니크는 한 수 체크메이트를 놓치는 실수를 하기도 했다. 이 패배 이후 인간 최고수와 컴퓨터 간의 공식 대결에 대한 관심은 줄어들었다.[14][15]
'''현대의 컴퓨터 체스'''
2000년대 후반부터는 개인용 컴퓨터나 스마트폰에서 실행되는 체스 엔진도 그랜드마스터 수준을 넘어섰다. 2009년 스마트폰 HTC 터치 HD에서 실행된 포켓 프리츠 4(Hiarcs 엔진)가 국제 마스터급 토너먼트(Copa Mercosur)에서 9승 1무로 우승하는 기록을 세웠다.[18] 당시 이 프로그램의 연산 속도는 초당 2만 수 미만으로, 초당 2억 수를 계산했던 딥 블루와 비교하면 하드웨어 성능보다는 알고리즘의 발전이 더 큰 영향을 미쳤음을 보여준다.[19]
스톡피쉬, 릴라 체스 제로, 코모도 등 현대의 최고 체스 엔진들은 인간 세계 챔피언을 훨씬 능가하는 실력을 보여준다. 특히 2017년 구글 딥마인드가 개발한 알파제로는 인공 신경망과 강화 학습을 통해 기존의 강자 스톡피쉬를 압도적인 성적으로 꺾으며 새로운 시대를 열었다. 이후 효율적으로 업데이트 가능한 신경망(NNUE) 기술이 스톡피쉬 등 기존 엔진에도 도입되면서 성능이 더욱 향상되었다.[51][52]
오늘날 체스 선수들은 컴퓨터를 대결 상대보다는 분석 도구로 활용하는 경향이 강하다.[20] 세계 챔피언 마그누스 칼센조차 컴퓨터와의 대결은 항상 패배하기 때문에 즐기지 않는다고 언급했다.[21] 인간과 컴퓨터가 협력하는 어드밴스드 체스는 인간 단독이나 컴퓨터 단독보다 더 높은 수준의 플레이를 보여주기도 한다.
'''주요 발전사 요약'''
연도 | 주요 사건 |
---|---|
1769 | 볼프강 폰 켐펠렌이 터키인 제작 (실제로는 사람이 조종) |
1912 | 레오나르도 토레스 이 케베도가 엘 아헤드레시스타 제작 (최초의 기계식 체스 기계) |
1949 | 클로드 섀넌이 컴퓨터 체스 프로그래밍 원리 제시 |
1951 | 앨런 튜링이 최초의 체스 프로그램 알고리즘(투로챔프) 개발[54][55] |
1956 | 로스 알라모스 체스 개발 (최초의 동작하는 프로그램, 6x6 보드) |
1957 | 알파-베타 가지치기 알고리즘 발견 |
1967 | Mac Hack VI가 토너먼트에서 인간에게 첫 승리 |
1970 | 첫 북미 컴퓨터 체스 선수권 대회 개최 |
1974 | 첫 세계 컴퓨터 체스 선수권 대회 개최 (카이사 우승) |
1977 | 최초의 상업용 체스 컴퓨터 체스 챌린저 출시 |
1978 | 데이비드 레비가 체스 4.7과의 내기에서 승리했으나, 1패 기록 (컴퓨터의 마스터 상대 첫 승) [9] |
1981 | 크레이 블리츠가 토너먼트에서 마스터를 꺾고 우승 (최초의 마스터 등급 컴퓨터) |
1988 | 딥 소트가 그랜드마스터 벤트 라르센에게 승리 (최초의 GM 상대 승리) |
1996 | 딥 블루가 가리 카스파로프에게 1승 (정규 경기 최초의 세계 챔피언 상대 승리) |
1997 | 딥 블루가 카스파로프와의 재대결에서 3.5–2.5로 승리 |
2002 | 블라디미르 크람니크와 딥 프리츠 무승부 (4-4) |
2006 | 크람니크가 딥 프리츠에게 패배 (2-4) |
2009 | 스마트폰에서 실행되는 포켓 프리츠 4가 국제 마스터급 토너먼트 우승[18] |
2017 | 알파제로가 스톡피쉬를 압도적인 성적으로 꺾음 |
2020 | 효율적으로 업데이트 가능한 신경망(NNUE) 기술이 스톡피쉬에 도입[51][52] |
2. 3. 인간을 넘어선 컴퓨터
1957년, 알파-베타 가지치기를 최적화하는 방식을 발견한 후, 카네기 멜론 대학교 연구팀은 컴퓨터가 1967년까지 인간 세계 챔피언을 이길 것이라고 예측했다.[8] 그러나 그들은 수의 평가 순서를 정하는 어려움을 간과했다. 연구자들은 특정 수가 높은 점수를 받을 경우 다른 수를 평가할 때 다시 검토하는 킬러 휴리스틱 같은 기법을 개발했지만, 1970년대까지 대부분의 최고 체스 선수들은 컴퓨터가 마스터 수준에 도달하기 어려울 것이라고 믿었다. 1968년 국제 마스터 데이비드 레비는 10년 안에 어떤 컴퓨터도 자신을 이길 수 없을 것이라는 유명한 내기를 걸었고, 1976년 시니어 마스터이자 심리학 교수인 엘리엇 허스트는 컴퓨터 프로그램이 마스터 선수를 이기려면, 마스터가 술에 취해 동시에 50게임을 두는 와중에 아주 드문 실수를 저질러야만 가능할 것이라고 비관적으로 전망했다.
하지만 1970년대 후반, 체스 프로그램은 예상보다 빠르게 발전하여 숙련된 인간 선수들을 이기기 시작했다. 허스트가 그런 발언을 한 해에, 노스웨스턴 대학교의 Chess 4.5는 인간 토너먼트(폴 매슨 아메리카 체스 선수권 Class B 레벨)에서 우승한 최초의 프로그램이 되었다. 레비는 1978년 Chess 4.7과의 대결에서 승리하여 내기에서는 이겼지만, 6경기 중 1경기를 내주며 컴퓨터가 마스터급 선수에게 거둔 최초의 승리를 허용했다.[9] 1980년에는 Belle이 마스터급 선수들을 종종 이기기 시작했고, 1982년에는 마스터 수준의 프로그램이 두 개나 등장했다.
이러한 급격한 발전은 특별한 이론적 돌파구 없이 이루어져 많은 이들을 놀라게 했다. Belle이 초당 10만 개의 수를 검토하는 능력이 결정적일 것이라고 예상한 사람은 많지 않았다. 마이크로컴퓨터용 프로그램 ''Sargon''의 개발자 스프라클렌 부부는 성능 향상의 90%가 계산 속도 증가에서 비롯되었고, 평가 기능 개선은 10%에 불과하다고 추정했다. 1982년 ''뉴 사이언티스트''는 컴퓨터의 플레이가 "어색하고, 비효율적이며, 산만하다"고 평가하면서도, 인간이 "끔찍한 실수, 놀라운 과실, 이해할 수 없는 부주의" 등을 더 자주 저지르기 때문에 컴퓨터에게 패배한다고 분석했다. 즉, 컴퓨터는 인간의 실수를 정확히 찾아내 이용하는 능력으로 승리한다는 것이다.[22]
1982년까지 마이크로컴퓨터 체스 프로그램은 초당 1,500수까지 분석할 수 있게 되었고, 이는 5년 전 메인프레임 컴퓨터 수준에 해당하며 대부분의 아마추어 선수를 능가하는 실력이었다. 전문가들의 예상과 달리, 불과 한두 수 더 깊이 탐색하는 것만으로도 플레이 수준은 크게 향상되었다. ''뉴 사이언티스트''는 이러한 작은 개선이 "인간의 오류가 풍부하게 나타나는 심리적 문턱"을 넘어서게 했다고 평가했다. 1984년 ''BYTE''지는 IBM PC용 프로그램 ''SPOC''을 검토하며, 컴퓨터 체스가 "엉성하고 우아하지 못하다"고 하면서도, 로버트 번의 말을 인용해 "전술적으로 일반 인간 선수보다 오류가 없다"고 지적했다. SPOC는 당시 "최첨단 체스 프로그램"으로 평가받으며 USCF 레이팅 1700(Class B) 수준의 플레이를 보여주었다.[10]
컴퓨터의 미래에 대한 예측은 다양했다. 1982년 북미 컴퓨터 체스 선수권 대회에서 먼로 뉴본은 5년 안에, 마이클 발보는 10년, 스프라클렌 부부는 15년, 켄 톰슨은 20년 이상 걸릴 것이라고 예측했으며, 불가능할 것이라는 의견도 있었다. 가장 일반적인 예측은 2000년경이었다.[11]
1989년, 딥 소트는 전시 경기에서 레비를 꺾었지만, 세계 챔피언 가리 카스파로프에게는 두 차례 패배하며 아직 격차가 있음을 보여주었다. 컴퓨터가 현역 세계 챔피언에게 정규 시간 제한 경기에서 처음으로 승리한 것은 1996년, IBM의 딥 블루가 카스파로프와의 첫 번째 경기(딥 블루 대 카스파로프, 1996, 제1국)에서 승리했을 때였다. 그러나 카스파로프는 나머지 5경기에서 3승 2무를 기록하며 전체 대결에서는 승리했다.
1997년 5월, 업그레이드된 딥 블루는 카스파로프와의 재대결에서 3½–2½로 승리했다. 이는 컴퓨터가 공식 경기에서 세계 챔피언을 꺾은 역사적인 사건으로 기록되었으며, 이 대결은 2003년 다큐멘터리 ''게임 오버: 카스파로프와 머신''으로 제작되기도 했다.
딥 블루의 승리 이후, 상업적으로 이용 가능한 워크스테이션에서 실행되는 체스 프로그램들도 최고 수준 선수들과 경쟁하기 시작했다. 1998년 Rebel 10은 당시 세계 랭킹 2위였던 비스와나탄 아난드를 5–3으로 이겼다. 하지만 이 대결의 대부분은 속기(블리츠)나 세미 블리츠 게임이었고, 정규 시간 제한 경기에서는 아난드가 1½–½로 앞섰다.[12] 이는 컴퓨터가 빠른 시간 제한에서는 강점을 보이지만, 클래식 경기에서는 인간의 우위가 여전히 존재함을 시사했다.
2000년대 초반, 주니어나 프리츠와 같은 상용 프로그램들은 카스파로프나 클래식 세계 챔피언 블라디미르 크람니크와의 대결에서 무승부를 기록할 수 있는 수준에 도달했다.
연도 | 대결 | 인간 선수 | 컴퓨터 | 결과 | 비고 |
---|---|---|---|---|---|
1978 | 레비 내기 | 데이비드 레비 (IM) | Chess 4.7 | 레비 4½–1½ 승 | 컴퓨터가 마스터급 상대 첫 승리 (1승) |
1989 | 전시 경기 | 가리 카스파로프 (세계 챔피언) | 딥 소트 | 카스파로프 2–0 승 | |
1996 | 딥 블루 대 카스파로프 1차전 | 가리 카스파로프 (세계 챔피언) | 딥 블루 | 카스파로프 4–2 승 | 컴퓨터가 정규 시간 경기에서 세계 챔피언에게 첫 승리 (1국) |
1997 | 딥 블루 대 카스파로프 2차전 | 가리 카스파로프 (세계 챔피언) | 딥 블루 (업데이트 버전) | 딥 블루 3½–2½ 승 | 컴퓨터가 공식 경기에서 세계 챔피언 첫 승리 |
1998 | 아난드 vs Rebel | 비스와나탄 아난드 (세계 2위) | Rebel 10 | Rebel 5–3 승 | 속기/세미 블리츠 위주. 정규 경기는 아난드 1½–½ 승 |
2002 | 바레인 두뇌 대결 | 블라디미르 크람니크 (클래식 세계 챔피언) | 딥 프리츠 | 4–4 무승부 | |
2003 | 인간 대 기계 세계 선수권 | 가리 카스파로프 (세계 1위) | 딥 주니어 | 3–3 무승부 | |
2003 | 인간 대 기계 세계 선수권 | 가리 카스파로프 (세계 1위) | X3D 프리츠 | 2–2 무승부 | |
2005 | 히드라 vs 아담스 | 마이클 아담스 (세계 7위) | 히드라 | 히드라 5½–½ 승 | |
2006 | 크람니크 vs 딥 프리츠 | 블라디미르 크람니크 (세계 챔피언) | 딥 프리츠 | 딥 프리츠 4–2 승 |
컴퓨터 체스의 실력이 인간 최고 수준에 근접하고, 심지어 이를 넘어섰다고 평가받게 된 이후에도 컴퓨터 체스 특유의 약점과 함정은 몇 가지 알려져 있으며, 이러한 허점을 공략하는 "안티 컴퓨터 전략"도 인간 대 컴퓨터 대결에서 시도되어 왔다.
2007년 3월, 그랜드마스터 얀 엘베스트(당시 레이팅 2610)는 컴퓨터 체스 프로그램 "Rybka"와 핸디캡 매치를 가졌다. Rybka는 총 8번의 게임에서 매번 다른 폰 하나를 잃는 불리한 조건으로 시작했지만, 최종적으로 4승 1패 3무를 기록하며 승리했다.
2002년 10월, 크람니크와 딥 프리츠의 8경기 대결(바레인 두뇌 대결)은 무승부로 끝났다. 크람니크는 컴퓨터의 단기적인 계산 능력을 피하는 전형적인 "반(反)컴퓨터" 전략으로 2승을 거뒀으나, 5국에서는 실수로 패배했고, 6국에서는 유리한 상황에서 공격을 시도하다가 오히려 불리해져 기권했다. 게임 후 분석 결과, 크람니크가 기권한 포지션은 실제로는 무승부 가능성이 높았던 것으로 나타났다. 대부분의 해설자들은 여전히 크람니크를 경기에서 더 강력한 선수로 평가한다.
2003년에는 카스파로프가 주니어 및 X3D 프리츠와 연달아 대결하여 모두 무승부를 기록했다. 2005년에는 전용 체스 컴퓨터 히드라가 세계 랭킹 7위 마이클 아담스를 5½–½라는 압도적인 점수 차로 이겼다.[13]
2006년, 크람니크는 딥 프리츠와 다시 대결했으나 이번에는 2–4로 패배했다. 특히 마지막 경기에서 크람니크는 무승부를 만들기 위해 공격적인 시칠리안 방어를 시도했으나 패배했다. 이 패배 이후 인간과 컴퓨터의 체스 대결에 대한 관심이 줄어들 것이라는 예측이 나왔다.[14] 뉴본은 "과학은 끝났다"고 말하기도 했다.[15]
1990년대 후반 이후 컴퓨터는 인간 최고수들을 따라잡았고, 지난 40년간 컴퓨터의 엘로 레이팅은 연간 약 40점씩 상승한 반면, 인간 최고수들은 연간 약 2점 상승에 그쳤다.[16] 컴퓨터의 최고 레이팅 기록은 1988년 딥 소트의 USCF 2551점이었으며, 현재 FIDE는 인간 대 컴퓨터 결과를 공식 레이팅에 반영하지 않는다. 컴퓨터 전용 레이팅 시스템이 있지만 인간 레이팅과 직접 비교는 어렵다.[17] 2016년 스웨덴 체스 컴퓨터 협회는 코모도 프로그램의 레이팅을 3361점으로 평가했다.
체스 엔진의 발전은 계속되어, 2009년에는 휴대 전화에서 실행되는 체스 엔진(Hiarcs 13 on 포켓 프리츠 4)이 그랜드마스터 수준의 카테고리 6 토너먼트(Copa Mercosur)에서 9승 1무로 우승하며 2898점의 퍼포먼스 레이팅을 기록했다.[18] 이 엔진은 초당 2만 개 미만의 수를 분석했는데, 이는 초당 2억 개를 분석했던 딥 블루와 비교하면 소프트웨어의 효율성이 크게 향상되었음을 보여준다.[19]
1998년 카스파로프는 인간이 컴퓨터의 도움을 받아 다른 인간과 대결하는 어드밴스드 체스라는 형식을 제안했다. 그는 이러한 "어드밴스드" 플레이어가 인간이나 컴퓨터 단독보다 더 강하다고 주장했으며, 이는 프리스타일 체스 대회 등에서 입증되었다.
오늘날 체스 선수들은 컴퓨터를 대결 상대보다는 분석 도구로 활용하는 경향이 있다.[20] 그랜드마스터 앤드류 솔티스는 2016년에 "컴퓨터가 너무 뛰어나다"고 말했으며, 세계 챔피언 마그누스 칼센이 컴퓨터와 대결하지 않는 이유에 대해 "항상 지기만 하고, 지는 것보다 더 우울한 일은 없기 때문"이라고 설명했다.[21]
2017년, 구글 딥마인드의 알파제로는 신경망을 기반으로 스스로 학습하여 당시 최강 엔진이던 스톡피쉬를 100경기 대결에서 28승 72무 무패로 압도했다. 이는 컴퓨터 체스 분야에 새로운 패러다임을 제시했으며, 이후 릴라 체스 제로와 같이 알파제로의 영향을 받은 엔진들이 등장했다. 2020년에는 컴퓨터 쇼기에서 개발된 효율적으로 업데이트 가능한 신경망(NNUE) 평가 함수가 스톡피쉬에 통합되면서 전통적인 알파-베타 탐색 엔진의 성능도 다시 크게 향상되었다.[51][52]
3. 안티 컴퓨터 전략
1997년 가리 카스파로프 대 딥 블루의 대결에서는, 카스파로프가 초반 포석을 벗어나 미지의 국면으로 이끌면 정석대로 두는 것보다 딥 블루의 능력을 떨어뜨릴 수 있다고 판단하여 3국에서 비정상적인 게임을 시도했다. 그러나 유리한 상황을 잡았음에도 불구하고 결과는 무승부로 끝났다.
2008년 3월 15일에 진행된 히카루 나카무라 (당시 세계 랭킹 46위, 레이팅 2670)와 Rybka의 대국에서는, 나카무라가 일체의 공격 의사를 보이지 않고 묵묵히 기다리는 수를 두었다. 이는 Rybka에게 "자신이 유리하다"는 착각을 일으켜 무리한 수를 두도록 유도한 후, 한꺼번에 반격에 나서 승리하기 위한 전략이었다. 이 전략 때문에 대국은 271무브(체스에서는 선·후수를 2수로 묶어 1무브로 계산하므로, 장기식으로는 542수)에 달하는 장기전이 되었다.
4. 핸디캡 매치
2008년 9월에는 그랜드마스터 바딤 밀로프(당시 세계 랭킹 28위, 레이팅 2705)가 Rybka와 8국의 대국을 진행했다. 이 중 핸디캡 매치가 포함되었다.
총 스코어는 밀로프가 2승 1패 5무로 앞섰지만, 이 대국은 최고 수준의 그랜드마스터조차 컴퓨터에게 핸디캡을 부여한 상태에서 겨우 대등하게 싸울 수 있다는 점을 보여주었다.
2014년 8월 23일, 히카루 나카무라(당시 세계 랭킹 5위, 레이팅 2787)는 Stockfish와 4국의 핸디캡 매치를 치렀다.[101] Stockfish는 3.0GHz, 8코어 Intel Xeon E5를 탑재한 Mac Pro에서 구동되었다. Stockfish는 4국 내내 오프닝 이론과 엔드게임 데이터베이스 접근이 제한되는 핸디캡을 가졌다.
결과적으로 나카무라는 4국 동안 2무 2패를 기록했다.
2018년 6월 17일, 히카루 나카무라(당시 세계 랭킹 10위, 레이팅 2769)는 Komodo와 3국의 핸디캡 매치를 진행했다.
대국 제한 시간은 양측 10분에 1수당 5초가 추가되었으며, Komodo는 오버클럭된 Intel Core i9-7960X (16코어) CPU를 사용했고, 5개 기물까지의 엔드게임 데이터베이스 접근이 허용되었다.
5. 컴퓨터 체스의 프로그래밍 기술
컴퓨터 체스 프로그램 개발은 크게 체스 엔진과 그래픽 사용자 인터페이스(GUI) 개발로 나뉜다. 엔진은 실제 수를 계산하고 게임 전략을 결정하는 핵심 부분이며, GUI는 사용자가 말을 움직이고 게임 상태를 시각적으로 확인하는 인터페이스를 제공한다. 이 둘은 종종 별개의 프로그램으로 개발되어 체스 엔진 통신 프로토콜(CECP)이나 Universal Chess Interface(UCI)와 같은 표준 프로토콜을 통해 통신한다. 이러한 분업 구조 덕분에 개발자들은 엔진이나 GUI 중 하나에만 집중하여 개발할 수 있게 되었다.
체스 게임의 복잡성은 프로그래밍 초기부터 큰 도전 과제였다. 1949년 클로드 섀넌은 체스 게임을 트리 형태로 표현하고, 모든 경우의 수를 탐색하는 대신 제한된 깊이까지만 탐색한 후 평가 함수를 사용해 각 상태의 유불리를 판단하는 알고리즘적 접근법을 제시했다. 체스는 한 수마다 평균 30개 이상의 가능한 수가 있으며, 일반적인 게임은 수십 수가 진행되므로 전체 게임 트리를 탐색하는 것은 현실적으로 불가능하다.[22] 예를 들어, 단 10플라이(각 플레이어가 5수씩)만 내다보려 해도 검토해야 할 경우의 수는 1000조 가지가 넘는다.[22] 초기 컴퓨터의 성능 한계와 체스 지식을 효과적으로 표현하는 방법의 부재로 인해 초기 프로그램 개발은 난항을 겪었다. 구 소련의 전 세계 체스 챔피언 미하일 보트빈니크는 이러한 한계 속에서 하드웨어 성능보다는 효율적인 알고리즘, 특히 선택적 탐색 기법 연구에 집중하며 컴퓨터 체스 발전에 기여했다.
컴퓨터 체스 시스템 개발자는 다음과 같은 핵심 기술적 문제들을 해결해야 한다.
- 보드 표현: 체스판의 현재 상태를 컴퓨터가 이해할 수 있는 데이터 구조로 나타내는 방법.
- 탐색 기술: 가능한 수들을 식별하고, 그중 가장 유망한 수를 효율적으로 찾아내는 방법.
- 리프 평가: 탐색을 더 진행하지 않는 최종 상태(리프 노드)의 유불리를 평가하는 방법.
체스 고수와 초보자 모두 비슷한 수의 후보 수를 고려하지만, 고수는 경험에서 비롯된 패턴 인식 능력을 통해 유망하지 않은 수를 빠르게 배제하고 특정 수를 더 깊게 탐색한다. 컴퓨터 체스에서는 평가 함수가 이러한 패턴 인식 역할을 하며, 머신 러닝 기술(텍셀 튜닝, 경사 하강법, 강화 학습 등)을 이용한 함수 최적화는 인간의 경험 축적 과정과 유사하다. 이를 통해 프로그램은 평가 함수가 불리하다고 판단하는 수를 탐색에서 제외(전진 가지치기 등)하여 유망한 수를 더 깊게 탐색할 수 있다.
탐색 알고리즘컴퓨터 체스에서 주로 사용되는 탐색 알고리즘은 미니맥스이다. 이는 현재 플레이어에게는 최댓값을, 상대 플레이어에게는 최솟값을 주는 수를 선택하는 방식으로 작동한다. 탐색 트리의 최종 노드(리프)에서 평가 함수를 통해 값을 계산하고, 이 값을 상위 노드로 전달하여 루트 노드의 최종 평가값을 결정한다. 단순한 미니맥스는 탐색 깊이가 제한적이므로, 알파-베타 가지치기와 같은 기법을 사용하여 탐색 효율을 극대화한다. 알파-베타 가지치기는 특정 분기가 최종 결과에 영향을 미치지 않을 것이 확실하면 해당 분기 탐색을 중단하여 불필요한 계산을 줄인다. 이 외에도 정적 탐색, 전진 가지치기(예: 이전에 나쁜 수로 판명된 수 배제), 탐색 확장(예: 체크 상황, 위협적인 통과한 폰 등 중요 상황에서 더 깊게 탐색), 탐색 축소 등 다양한 선택적 탐색 휴리스틱이 사용된다.
평가 함수모든 수를 끝까지 탐색할 수 없으므로, 컴퓨터는 특정 깊이에서 탐색을 멈추고 도달한 상태(리프 노드)를 평가해야 한다. 이 평가를 수행하는 것이 평가 함수이다. 평가는 주로 폰의 100분의 1 가치인 '센티폰' 단위를 사용하며, 양수는 백에게 유리, 음수는 흑에게 유리함을 나타낸다.
- 전통적 평가 함수: 주로 기물의 점수(폰 1점, 나이트/비숍 3점, 룩 5점, 퀸 9점 등 체스 기물의 상대적 가치 기준)를 기반으로, 폰 구조, 비숍 쌍의 유무, 중앙 장악력, 킹의 안전성, 게임 단계(오프닝, 미들게임, 엔드게임) 등 다양한 위치적 요소를 종합하여 평가값을 계산한다. 이러한 함수는 종종 머신 러닝 기법으로 최적화된다.
- 인공 신경망 기반 평가 함수: 현대 체스 엔진들은 대부분 인공 신경망, 특히 효율적으로 업데이트 가능한 신경망(NNUE)을 사용한다. NNUE는 기물-정사각형 테이블(각 기물 유형과 위치에 따른 가치 테이블)을 입력으로 받는 얕은 신경망 구조이다. 신경망은 대량의 게임 데이터를 이용한 지도 학습, 비지도 학습, 강화 학습 등을 통해 훈련되어 특정 포지션의 유불리를 매우 정교하게 판단한다.
단계별 프로그래밍 접근체스 프로그램은 게임 진행 단계에 따라 다른 전략을 사용하는 경우가 많다.
- 오프닝: 방대한 오프닝 데이터베이스(오프닝 북)를 참조한다. 현재 국면이 데이터베이스에 존재하면, 저장된 수(가장 좋다고 알려진 수 또는 무작위 선택)를 즉시 둔다.
- 미들게임: 오프닝 데이터베이스 범위를 벗어나면, 평가 함수와 탐색 알고리즘(미니맥스, 알파-베타 등)을 사용하여 최선의 수를 계산한다. 탐색 효율을 높이기 위해 이전에 계산된 국면 정보를 저장하고 재활용하는 해시 테이블(전치 테이블) 기술이 필수적이다.
- 엔드게임: 기물이 몇 개 남지 않은 엔드게임 상황에서는 엔드게임 테이블베이스를 활용한다. 이는 특정 기물 조합(예: 7개 이하)으로 이루어진 모든 가능한 국면에 대해, 양측이 최선을 다했을 경우의 게임 결과(승리, 패배, 무승부 - 50수 규칙 포함)를 미리 계산하여 저장해 둔 데이터베이스이다. 테이블베이스를 참조하면 탐색 없이 즉시 최선의 수를 알 수 있다. 데이터 압축 기술(예: Syzygy 포맷)의 발전으로 6-7개 기물 테이블베이스가 실용적인 크기(6개 기물 약 150GB, 7개 기물 약 17TB)로 사용되고 있으며, 8개 기물 테이블베이스도 연구 중이다.
표준 형식대부분의 현대 체스 프로그램은 게임 기보 저장을 위해 Portable Game Notation(PGN) 형식을, 특정 국면 표현을 위해 Forsyth–Edwards Notation(FEN) 형식을 지원한다. 수 표기는 일반적으로 표준 대수 기보법을 사용한다.
6. 컴퓨터 체스 대회
주요 컴퓨터 체스 대회로는 세계 컴퓨터 체스 선수권 대회(World Computer Chess Championship, WCCC)와 톱 체스 엔진 챔피언십(Top Chess Engine Championship, TCEC) 등이 있다.
'''세계 컴퓨터 체스 선수권 대회 (WCCC)'''
1974년 스톡홀름에서 처음 개최되었다. 초기 참가 프로그램들은 전용의 대규모 하드웨어를 사용하는 경우가 많았다. 예를 들어, 1995년 홍콩 대회에 참가하여 3위를 차지한 딥 블루가 대표적이다. (다만, 이 대회는 참가 프로그램 24개 중 5게임만 치러져 객관적인 순위로 보기는 어렵다.)
1999년부터는 '세계 마이크로 컴퓨터 체스 선수권 대회'(WMCCC)와 통합되어 개최되었다. 이는 대부분의 프로그램이 마이크로 컴퓨터에서 작동하게 되면서 두 대회를 구분할 실익이 사라졌기 때문이다.
2010년 대회는 일본 가나자와에서 컴퓨터 올림피아드와 함께 열렸으며, Shredder, Rybka, Jonny, Fridolin, Pandix, Hector for Chess, Rondo, Junior, Darmenios, Thinker 등 10개 프로그램이 참가했다.
그러나 21세기에 들어 온라인 대전이 보편화되면서 개발자들이 직접 모여 경기를 치를 필요성이 줄어들었고, 참가자 수가 급감하였다. 결국 대회 시작 50주년이 되는 2024년을 마지막으로 WCCC는 종료되었다.
주요 사건으로는 2005년 제13회 대회에서 예상과 달리 앤서니 코지(Anthony Cozzie)의 Zappa가 우승하고, 높은 평가를 받던 Fruits가 2위, Shredder와 Deep Sjeng이 공동 3위를 차지한 일이 있었다. 또한, 2007년부터 2010년까지 4년 연속 우승했던 Vasik Rajlich의 Rybka는 이후 다른 프로그램의 코드를 무단으로 사용한 사실이 밝혀져 우승 기록이 모두 취소되었다.
'''WCCC 역대 우승 프로그램'''
개최 연도 | 개최지 | 우승 프로그램 | 프로그래머 |
---|---|---|---|
1974 | 스톡홀름 | Kaissa | 돈스코이 |
1977 | 토론토 | Chess 4.6 | Slate/Atkins |
1980 | 린츠 | Belle | Thompson |
1983 | 뉴욕 | Cray Blitz | Hyatt |
1986 | 쾰른 | Cray Blitz (tiebreak) | Hyatt |
1989 | 에드먼턴 | Deep Thought | Hsu |
1992 | 마드리드 | Chessmachine | Schroeder |
1995 | 홍콩 | Fritz | Morsch/de Gorter/Feist |
1999 | 파더보른 | Shredder | Meyer-Kahlen |
2002 | 마스트리흐트 | Deep Junior | Ban/Bushinsky |
2003 | 그라츠 | Shredder | Meyer-Kahlen |
2004 | 라마트간 | Deep Junior | Ban/Bushinsky |
2005 | 레이캬비크 | Zappa | Cozzie |
2006 | 토리노 | Deep Junior | Ban/Bushinsky |
2007 | 암스테르담 | Zappa | 앤서니 코지 |
2008 | 베이징 | HIARCS | |
2009 | 팜플로나 | Junior, Shredder, Sjeng | |
2010 | 가나자와 | Rondo, Thinker |
'''세계 마이크로 컴퓨터 체스 선수권 대회 (WMCCC) 역대 우승 프로그램'''
(1999년 WCCC와 통합)
개최년도 | 개최지 | 우승 프로그램 | 프로그래머 |
---|---|---|---|
1980 | 런던 | Chess Challenger | 스프라클렌 |
1981 | 트라베뮌데 | Fidelity X | 스프라클렌 |
1983 | 부다페스트 | Elite A/S | 스프라클렌 |
1984 | 글래스고 | Elite X | 스프라클렌 |
1985 | 암스테르담 | Mephisto | 랑 |
1986 | 댈러스 | Mephisto | 랑 |
1987 | 로마 | Mephisto | 랑 |
1988 | 알메리아 | Mephisto | 랑 |
1989 | 포르토로시 | Mephisto | 랑 |
1990 | 리옹 | Mephisto | 랑 |
1991 | 밴쿠버 | Gideon | 슈로더 |
1993 | 뮌헨 | Hiarcs | 유니에이크 |
1995 | 홍콩 | Fritz | 모르쉬/데 고르터/파이스트 |
1999 | 파더보른 | Shredder | 마이어-칼렌 |
2000 | 런던 | Shredder | 마이어-칼렌 |
2001 | 마스트리흐트 | Deep Junior | 반/부신스키 |
'''톱 체스 엔진 챔피언십 (TCEC)'''
톱 체스 엔진 챔피언십(Top Chess Engine Championship, TCEC)은 스웨덴 프로그래머 마르틴 소렌센(Martin Thoresen)이 창설한 온라인 컴퓨터 체스 대회로, 현재는 체스 뉴스 사이트 chessdom이 주최하고 있다. 초기 명칭은 '소렌센 체스 엔진 대회'(Thoresen Chess Engines Competition)였다.
TCEC는 시즌별 승강급 제도를 갖춘 다단계 리그 방식으로 운영된다. 각 리그에서는 여러 번의 라운드 로빈 형식으로 대국이 진행되며, 최상위 리그인 '프리미어 디비전'에서 상위 2위를 차지한 프로그램들이 100번의 대국으로 구성된 '슈퍼파이널'을 치러 최종 우승자를 가린다.
스톡피쉬, 릴라 체스 제로, Komodo, Houdini 등 세계 최고 수준의 체스 엔진들이 대부분 참가하며, 강력한 고성능 하드웨어 환경에서 장시간의 제한 시간으로 많은 대국을 진행하기 때문에 현존하는 가장 권위 있는 컴퓨터 체스 대회 중 하나로 평가받는다.
'''TCEC 역대 결과'''
회수 | 개최일 | 우승 | 준우승 | 결승 대국 결과 (승-패-무) 총점 |
---|---|---|---|---|
제1회 | 2010년 12월 - 2011년 2월 | Houdini 1.5a | Rybka 4.0 | 12 - 5 - 23 23.5 - 16.5 |
제2회 | 2011년 2월 - 2011년 4월 | Houdini 1.5a | Rybka 4.1 | 9 - 5 - 26 22 - 18 |
제4회 | 2013년 1월 - 2013년 5월 | Houdini 3 | 스톡피쉬 250413 | 6 - 4 - 38 25 - 23 |
제5회 | 2013년 8월 - 2013년 12월 | Komodo 1142 | Stockfish 191113 | 10 - 8 - 30 25 - 23 |
제6회 | 2014년 2월 - 2014년 5월 | Stockfish 170514 | Komodo 7x | 13 - 6 - 45 35.5 - 28.5 |
제7회 | 2014년 9월 - 2014년 12월 | Komodo 1333 | Stockfish 141214 | 7 - 4 - 53 33.5 - 30.5 |
제8회 | 2015년 8월 - 2015년 11월 | Komodo 9.3x | Stockfish 021115 | 9 - 2 - 89 53.5 - 46.5 |
제9회 | 2016년 5월 - 2016년 12월 | Stockfish 8 | Houdini 5 | 17 - 8 - 75 54.5 - 45.5 |
제10회 | 2017년 10월 - 2017년 12월 | Houdini 6.03 | Komodo 1970.00 | 15 - 9 - 76 53.0 - 47.0 |
제11회 | 2018년 1월 - 2018년 4월 | Stockfish 260318 | Houdini 6.03 | 20 - 2 - 78 59.0 - 41.0 |
제12회 | 2018년 4월 - 2018년 7월 | Stockfish 180614 | Komodo 12.1.1 | 29 - 9 - 62 60.0 - 40.0 |
제13회 | 2018년 8월 - 2018년 11월 | Stockfish 18102108 | Komodo 2155.00 | 16 - 6 - 78 55.0 - 45.0 |
제14회 | 2018년 12월 - 2019년 2월 | Stockfish 190203 | 릴라 체스 제로 v20.2-32930 | 10 - 9 - 81 50.5 - 49.5 |
제15회 | 2019년 3월 - 2019년 5월 | Leela Chess Zero v0.21.1-nT40.T8.610 | Stockfish 19050918 | 14 - 7 - 79 53.5 - 46.5 |
제16회 | 2019년 7월 - 2019년 10월 | Stockfish 19092522 | AllieStein v0.5-dev_7b41f8c-n11 | 14 - 5 - 81 54.5 - 45.5 |
제17회 | 2020년 1월 - 2020년 4월 | Leela Chess Zero v0.24-sv-t60-3010 | Stockfish 20200407DC | 17 - 12 - 71 52.5 - 47.5 |
제18회 | 2020년 5월 - 2020년 7월 | Stockfish 202006170741 | Leela Chess Zero v0.25.1-svjio-t60-3972-mlh | 23 - 16 - 61 53.5 - 46.5 |
제19회 | 2020년 8월 - 2020년 10월 | Stockfish 202009282242_nn-baeb9ef2d183 | Leela Chess Zero v0.26.3-rc1_T60.SV.JH.92-190 | 18 - 9 - 73 54.5 - 45.5 |
제20회 | 2020년 12월 - 2021년 2월 | Stockfish 20210113 | Leela Chess Zero 0.27.0d-Tilps-dje-magic_JH.94-100 | 14 - 8 - 78 53.0 - 47.0 |
제21회 | 2021년 5월 - 2021년 8월 | Stockfish 14_202107131735 | Leela Chess Zero 0.28-dev+_69626 | 19 - 7 - 74 56.0 - 44.0 |
제22회 | 2022년 1월 - 2022년 4월 | Stockfish dev15_20220401 | KomodoDragon 2894.00 | 28 - 9 - 63 59.5 - 40.5 |
제23회 | 2022년 8월 - 2022년 11월 | Stockfish dev16_20221027 | Leela Chess Zero 0.30-dag-9a9c42d_784968 | 27 - 10 - 63 58.5 - 41.5 |
제24회 | 2023년 2월 - 2023년 4월 | Stockfish dev-20230409-b36d39de | Leela Chess Zero 0.30-dag-a9b25c2b-BT2-3650000 | 20 - 16 - 64 52.0 - 48.0 |
제25회 | 2023년 8월 - 2023년 10월 | Stockfish dev-20231010-00263636 | Leela Chess Zero 0.31-dag-e429eeb-BT3-2790000 | 27 - 23 - 50 52.0 - 48.0 |
제26회 | 2024년 3월 - 2024년 6월 | Stockfish dev-20240513-e608eab8 | Leela Chess Zero 0.31-dag-5350a2e-BT4-6147500 | 31 - 17 - 52 57.0 - 43.0 |
※ 제3회는 2011년 4월부터 개최되었으나, 2차 예선 도중 중단되었다.
7. 레이팅 리스트
CEGT[33], CSS,[34] SSDF[35], WBEC,[36] REBEL[37], FGRL,[38] IPON[39] 등 여러 기관에서 컴퓨터 체스 엔진의 강점을 비교하기 위한 평점 목록을 관리하고 있다.
CCRL (Computer Chess Rating Lists)은 컴퓨터 체스 엔진들을 서로 대결시켜 강점을 테스트하는 독립적인 기관으로, 2006년에 컴퓨터 간 경쟁을 장려하고 결과를 평점 목록으로 정리하기 위해 설립되었다.[40] CCRL은 세 가지 주요 목록을 운영한다: 40/40 (40수마다 40분), 40/4 (40수마다 4분), 그리고 40/4 FRC (동일 시간 제어, 체스960 방식). 경기 시 폰더링(영구적인 브레인)은 사용하지 않으며, 시간 측정은 AMD64 X2 4600+ (2.4 GHz) CPU에서 실행되는 Crafty 19.17 BH를 기준으로 조정된다. 또한, 게임 시작 후 최대 12수까지는 엔진 고유의 오프닝 북 대신 일반적이고 중립적인 오프닝 북을 사용하며, 4~5개의 테이블베이스를 활용한다.[40][41][42]
2020년대 초반에는 다양한 버전의 스톡피시, 코모도, 릴라 체스 제로, 팻 프리츠 등이 평점 목록 상위권을 차지하고 있다.
과거의 레이팅 리스트 예시는 다음과 같다.
기관 | 순위 | 엔진 | 레이팅 |
---|---|---|---|
SSDF | 1위 | Rybka 2.3.1 | 2935 |
2위 | HIARCS 11.1 | 2869 | |
3위 | Junior 10.1 | 2861 | |
CEGT | 1위 | Rybka 2.3.2a x64 4CPU | 3100 |
2위 | Zappa Mexico x64 4CPU | 3009 | |
3위 | Deep Shredder 11 x64 4CPU | 2984 |
2007년 당시 Rybka는 SSDF, CEGT 외에도 CCRL, CSS, Per Elbaek Jorgensen, Frank Quisinsky, Sedat Canbaz, Kurt Utzinger 등 총 8개의 주요 레이팅 리스트에서 모두 1위를 차지했다. 한편, 2006년 세계 챔피언 블라디미르 크람니크를 매치에서 이겼던 Deep Fritz는 당시 이 8개 리스트 중 어느 곳에서도 3위 안에 들지 못했다.
8. 대표적인 소프트웨어
컴퓨터 체스 소프트웨어는 다양한 형태로 개발되어 왔다. 가장 흔한 유형은 사용자와 직접 체스를 두는 프로그램으로, 사용자가 수를 두면 인공지능(AI)이 다음 수를 계산하여 응수하는 방식으로 진행된다. 이러한 프로그램은 수를 계산하는 체스 엔진과 사용자에게 시각적인 인터페이스를 제공하는 그래픽 사용자 인터페이스(GUI)가 별도로 개발되는 경우가 많다. 유니버설 체스 인터페이스(UCI)와 같은 표준화된 프로토콜 덕분에 사용자들은 하나의 GUI에 여러 다른 엔진을 연결하여 다양한 스타일의 상대를 경험할 수 있다. 현대의 체스 엔진은 매우 강력하기 때문에, 일반 사용자와의 대국을 위해 엔진의 능력을 의도적으로 제한하는 기능이 포함되기도 한다.
대국 기능 외에도 다양한 목적의 소프트웨어가 존재한다. 체스베이스(ChessBase)와 같이 방대한 기보를 검색하고 분석할 수 있는 데이터베이스 소프트웨어[3][4][5][6][7], Playchess처럼 인터넷을 통해 다른 사람들과 대국할 수 있는 온라인 체스 플랫폼, 체스마스터나 슈레더 체스 튜터와 같이 체스 학습을 돕는 훈련 프로그램, 그리고 체스 문제 해결을 위한 소프트웨어 등이 있다.
과거 1970년대 후반부터 1990년대 초반까지는 Fidelity의 체스 챌린저나 Hegener & Glaser의 메피스토와 같은 전용 체스 컴퓨터 시장이 활발했으나,[72][73] 개인용 컴퓨터의 성능이 비약적으로 발전하면서 현재는 소프트웨어 형태가 주류를 이루고 있다. 일부 오래된 MS-DOS 시절의 프로그램들은 DOSBox와 같은 에뮬레이터를 통해 현대 운영체제에서 실행되기도 한다.[76]
체스 소프트웨어는 Windows, macOS, 리눅스 등 다양한 운영체제와 iOS, 안드로이드와 같은 모바일 환경에서도 구동되며, 일부는 가정용 게임기로 이식되기도 했다. 다만, 일본어를 지원하는 소프트웨어는 상대적으로 적으며, 오래된 소프트웨어의 경우 일본어 환경에서 표시 오류가 발생하기도 한다.
8. 1. 대국 소프트웨어
체스를 두는 기능에 초점을 맞춘 소프트웨어이다. 사용자가 보드에 수를 두면 인공지능이 다음 수를 계산하여 두는 방식으로 진행된다. 수를 계산하는 체스 엔진과 사용자에게 시각적인 인터페이스를 제공하는 그래픽 사용자 인터페이스(GUI)는 별개의 프로그램으로 개발되는 경우가 많다. 이는 유니버설 체스 인터페이스(UCI)와 같은 표준 프로토콜 덕분에 가능해졌으며, 개발자들은 엔진과 GUI 중 하나에만 집중하여 개발할 수 있게 되었다. 사용자는 하나의 GUI에 여러 다른 엔진을 연결하여 다양한 스타일의 상대를 경험할 수 있다. 엔진 자체는 간단한 텍스트 기반의 명령줄 인터페이스를 가지는 경우가 많으며, GUI는 다양한 기물 세트, 보드 스타일, 3D 또는 애니메이션 효과 등을 제공하기도 한다.최근 체스 엔진의 성능이 매우 뛰어나기 때문에, 일반 사용자와의 대국을 위해 엔진의 능력을 제한하는 기능이 포함되기도 한다. 예를 들어, 프리츠나 리브카와 같은 UCI 엔진은 내장된 매개변수(uci_limitstrength, uci_elo) 조정을 통해 레이팅을 낮출 수 있다. 일부 소프트웨어는 핸디캡 모드, 펀 모드, 사용자의 수준에 맞춰주는 프렌드 모드 등을 제공한다.
현재 다양한 대국 소프트웨어가 개발되어 사용되고 있다. 주요 소프트웨어는 다음과 같다.
- '''Arena Chess GUI''': 무료로 사용할 수 있는 통합형 GUI로, 여러 체스 엔진이 기본으로 포함되어 있다. 국면 분석과 간이 데이터베이스 기능도 갖추고 있으며, 다국어를 지원한다.
- '''Arasan''': Jon Dart가 개발한 프로그램으로, 1994년부터 Windows용으로 개발되었고 현재는 리눅스 버전도 있다. GUI와 엔진은 분리되어 있지만, 다른 엔진을 불러오는 기능은 지원하지 않는다.
- '''체스''': macOS에 기본으로 탑재된 대국 소프트웨어이다. 엔진으로는 GNU Chess를 사용한다.
- '''Chess Titans''': Vista 이후의 Windows 버전에 포함된 대국 소프트웨어이다. 자체 개발 엔진을 사용하며, 3D 그래픽 표시를 지원한다.
- '''체스마스터''': 유비소프트에서 발매하는 통합형 소프트웨어이다. IM 조쉬 웨이츠킨이 감수한 트레이닝 메뉴 등 학습 기능이 충실하다. Windows 외에 Wii, PSP 등 다양한 플랫폼으로 이식되었다. PC용 최신판은 2008년 이후 업데이트되지 않았지만, 공식 포럼을 통해 지원이 계속되고 있다.
- '''ChessV''': Windows용 대국 소프트웨어로, 다양한 변칙 체스 규칙을 지원하는 것이 특징이다.
- '''ChessX''': 오픈 소스로 개발되는 통합형 소프트웨어이다. 여러 데이터베이스 병용, 기보 관리 및 검색 등 다양한 기능을 갖추고 있으며, Windows, macOS, 리눅스를 지원한다.
- '''프리츠''': 세련된 인터페이스를 가진 통합형 소프트웨어이다. 1995년 개발 중이던 딥 블루에 승리하며 유명해졌다. 현재는 세계 챔피언 수준의 기력을 가지고 있다.
- '''Shane's Chess Information Database (Scid)''': Windows, macOS, 리눅스를 지원하는 무료 통합 GUI이다. "Scid"라는 통칭으로 불리며, Arena 이상의 다기능성을 제공한다. 버그를 수정한 파생 버전인 "Scid vs. PC"도 있다.[3]
- '''슈레더''': 스테판 메이어-칼렌(Stefan Meyer-Kahlen)이 1992년부터 개발한 통합형 소프트웨어이다. 세계 마이크로컴퓨터 체스 선수권 대회에서 여러 차례 우승한 경력이 있다. Windows, macOS, 리눅스 외에 iPhone/iPod touch, Android 등 모바일 버전도 있다.
- '''XBoard/WinBoard''': GNU 프로젝트에서 개발한 무료 대국 소프트웨어이다. XBoard는 유닉스 계열 OS용, WinBoard는 Windows용으로 이식되었다. 간이 기보 편집 기능은 있지만 데이터베이스 기능은 없다. 변칙 체스 외에 장기와 샹치도 지원한다.
- '''최강 은성 체스''': 실버스타 재팬에서 개발한 Windows용 소프트웨어이다. 패키지판과 다운로드판이 있으며, 무료 체험판도 제공된다.
- '''체스 챔피언십 토너먼트''': 언밸런스에서 개발한 소프트웨어이다. 네트워크 통신 대국 기능과 함께 여러 종류의 페어리 체스를 지원한다.
- '''체스 프로그램 (COMPAC)''': 1982년 2월 발매된 일본 최초의 시판 퍼스널 컴퓨터용 체스 소프트웨어이다. MZ-80B 기종에서 동작했으며, 카세트 테이프로 제공되었다.
- '''통신 대국 월드 체스''': 닌텐도에서 Wii웨어로 발매한 소프트웨어이다. Fritz Reul이 개발한 "Loop" 엔진을 사용한다.
대부분의 현대 체스 프로그램은 게임 기보 저장을 위해 PGN 형식을, 특정 국면 저장을 위해 FEN 형식을 지원한다. 또한, 표준 대수 기보법을 이해하고 사용한다.
8. 2. 사고 엔진
체스 엔진은 컴퓨터 체스 프로그램의 핵심 두뇌 역할을 하는 소프트웨어로, 주어진 체스 포지션에서 가장 좋은 수를 계산하고 찾아내는 역할을 담당한다. 체스 프로그램은 독립형 체스 기계, 개인용 컴퓨터(PC)에서 실행되는 소프트웨어, 웹사이트 및 모바일 앱 등 다양한 형태로 제공된다. 이러한 프로그램들은 슈퍼컴퓨터부터 스마트폰까지 다양한 하드웨어에서 실행될 수 있으며, 일반적으로 하드웨어 요구 사항은 높지 않다. 하지만 성능 향상을 위해서는 프로세서 속도보다는 전치표를 저장할 충분한 메모리(수 기가바이트 이상) 확보가 더 중요할 수 있다.
대부분의 상업용 체스 프로그램은 이미 그랜드마스터급(엘로 2700 이상) 실력을 갖추고 있으며, 멀티 코어 프로세서를 활용하여 성능을 더욱 높인다. 스톡피쉬와 같은 최상위 엔진들은 세계 챔피언급 선수마저 능가하는 수준에 도달했다.
일반적으로 체스 프로그램은 수를 계산하는 체스 엔진과 사용자에게 체스판을 보여주고 입력을 받는 그래픽 사용자 인터페이스(GUI)로 구성된다. 사용자는 GUI를 통해 엔진의 실력, 시간제한 등 다양한 설정을 조절할 수 있으며, 수를 두거나 물리기, 게임 분석 요청 등의 기능을 이용한다. 엔진과 GUI는 별도로 개발되는 경우가 많으며, 표준화된 통신 프로토콜을 통해 상호작용한다.
=== 작동 원리 ===
체스 엔진은 주어진 포지션에서 최선의 수를 찾기 위해 복잡한 계산 과정을 거치며, 이는 크게 보드 표현, 검색 알고리즘, 평가 함수의 세 부분으로 나눌 수 있다.
==== 보드 표현 ====
보드 표현은 체스판의 현재 상태(각 기물의 위치 등)를 컴퓨터가 효율적으로 처리할 수 있는 자료 구조로 나타내는 방식이다. 어떤 방식을 사용하느냐에 따라 수 생성 및 포지션 평가 속도에 큰 영향을 미친다. 대표적인 방식으로는 배열 기반의 "메일박스"나 "0x88", 기물 위치 목록을 사용하는 "기물 리스트", 비트 연산을 활용하는 "비트보드" 등이 있다. 데이터를 저장할 때는 허프만 부호화 같은 기법이 사용되기도 한다.
==== 검색 알고리즘 ====
컴퓨터는 다음 수를 결정하기 위해 가능한 수들의 연쇄를 미리 탐색하는 과정을 거친다. 이를 '검색'이라고 한다. 체스 게임은 경우의 수가 엄청나게 많기 때문에 효율적인 검색 알고리즘이 필수적이다.
- 미니맥스와 알파-베타 가지치기: 기본적인 검색 알고리즘은 미니맥스이다. 이는 각 수마다 자신에게는 점수를 최대화하고 상대에게는 점수를 최소화하는 수를 선택하는 방식으로 작동한다. 이 과정을 반복하여 최종적인 평가값에 도달한다. 하지만 단순 미니맥스로는 실용적인 시간 내에 깊은 수까지 탐색하기 어렵다. 알파-베타 가지치기는 탐색 과정에서 명백히 좋지 않은 수(특정 경계를 벗어나는 수)를 더 이상 탐색하지 않고 제외(가지치기)하여 검색 효율을 크게 높이는 기법으로, 대부분의 현대 체스 엔진에서 핵심적으로 사용된다.
- 탐색 전략의 발전: 컴퓨터 체스 연구의 선구자인 클로드 섀넌은 1949년 논문에서[23] 컴퓨터가 체스를 두기 위한 두 가지 주요 탐색 전략, 즉 모든 가능한 수를 끝까지 탐색하는 'A형'(무차별 대입)과 유망해 보이는 수만 선택적으로 탐색하는 'B형'(선택적 탐색)을 제시했다.[24] 섀넌은 당시 기술로는 A형 접근이 비현실적(매우 느릴 것)이라고 예측했다.[22] 초기에는 B형 접근이 시도되었으나, 중요한 수를 놓치는 경우가 많아 성능 향상에 한계가 있었다. 1970년대 하드웨어 성능이 발전하면서 노스웨스턴 대학의 '체스 4.0'과 같은 프로그램이 무차별 대입에 가까운 A형 접근을 성공적으로 구현했고, 이는 한동안 주류가 되었다. 그러나 현대 엔진들은 단순한 무차별 대입이 아니라, 정적 탐색, 널 수(null-move) 가지치기, 검색 확장 및 축소 등 발전된 선택적 탐색 기법(휴리스틱)을 알파-베타 탐색과 결합하여 사용한다. 이를 통해 불필요한 탐색을 대폭 줄이고 중요한 라인을 훨씬 더 깊게 분석함으로써 강력한 성능을 달성한다.
- 몬테 카를로 트리 탐색: 2006년 레미 쿨롱에 의해 몬테 카를로 트리 탐색(MCTS)이라는 새로운 방식이 개발되었다. 이는 무작위 시뮬레이션을 반복하여 통계적으로 가장 승률이 높은 수를 찾아내는 기법이다. 이후 UCT(Trees에 적용된 상한 신뢰도), PUCT(Predictor + UCT) 등 개선된 알고리즘이 등장했으며, 특히 알파제로와 릴라 체스 제로 같은 인공 신경망 기반 엔진들이 이 방식을 사용하여 뛰어난 성과를 거두었다.
==== 평가 함수 ====
평가 함수는 탐색 과정에서 도달한 특정 포지션(주로 탐색의 마지막 단계인 '리프 노드')이 얼마나 유리한지를 수치적으로 판단하는 기준이다. 컴퓨터는 모든 경우의 수를 게임 끝까지 탐색할 수 없으므로, 중간 단계의 포지션을 정확하게 평가하는 것이 매우 중요하다.
- 전통적 평가 함수: 과거의 평가 함수는 주로 개발자가 직접 설계했다. 기본적인 기물 점수(폰 1점, 나이트/비숍 3점, 룩 5점, 퀸 9점 등 상대적 가치, 킹은 매우 높은 임의의 점수)를 바탕으로, 폰 구조, 중앙 장악력, 기물의 활동성, 비숍 쌍, 킹의 안전성 등 다양한 위치적 요소를 고려하여 점수를 계산했다. 이러한 요소들의 가중치는 개발자의 경험이나 기계 학습 기법(텍셀 튜닝, 확률적 경사 하강법 등)을 통해 최적화되었다.
- 신경망 기반 평가 함수: 현대의 강력한 엔진들은 대부분 인공 신경망을 평가 함수로 사용한다. 특히 효율적으로 업데이트 가능한 신경망(NNUE) 방식이 널리 쓰이는데, 이는 기물-정사각형 테이블(각 기물이 특정 칸에 있을 때의 가치를 나타내는 768개의 값)을 입력으로 사용하는 상대적으로 얕은 신경망이다. 때로는 더 복잡한 심층 신경망이 사용되기도 한다. 이러한 신경망은 대량의 게임 데이터를 이용한 지도 학습, 비지도 학습, 강화 학습 등을 통해 훈련되어 포지션을 평가하는 능력을 학습한다.
평가 결과는 보통 '센티폰(centipawn)' 단위로 표현되며, 100 센티폰은 대략 폰 1개 정도의 가치를 의미한다. 관례적으로 양수(+)는 백에게 유리함, 음수(-)는 흑에게 유리함을 나타낸다. 일부 엔진은 승/무/패 확률을 출력하기도 한다.
아드리안 드 그루트의 연구에 따르면, 체스 마스터는 초보자와 비슷한 수의 포지션을 고려하지만, 경험을 통해 구축된 패턴 인식 능력을 사용하여 유망한 라인을 훨씬 더 깊이 탐색한다. 컴퓨터 체스의 평가 함수와 기계 학습 기반 튜닝은 이러한 인간의 패턴 인식 및 경험 축적 과정과 유사한 역할을 수행하여, 불필요한 탐색을 줄이고 효율적으로 깊은 수읽기를 가능하게 한다.
=== 표준 프로토콜 및 형식 ===
컴퓨터 체스 프로그램과 엔진 간의 호환성을 위해 여러 표준 형식이 사용된다.
- 게임 및 포지션 표기: 거의 모든 현대 프로그램은 게임 기록을 위해 포터블 게임 노테이션(PGN) 형식을, 특정 포지션을 나타내기 위해 포사이스-에드워즈 표기법(FEN) 형식을 지원한다. 기보 입력 및 표시는 표준 대수 기보법이 주로 사용된다.
- 엔진-GUI 통신: 엔진과 GUI가 서로 통신하기 위한 표준 프로토콜이 존재한다. 가장 널리 사용되는 것은 슈테판 메이어-칼렌과 프란츠 후버가 개발한 범용 체스 인터페이스(Universal Chess Interface, UCI)이다. GNU Chess와 윈보드를 위해 팀 만이 개발한 체스 엔진 통신 프로토콜(CECP 또는 WinBoard 프로토콜)도 있다. 이러한 표준 덕분에 사용자들은 다양한 GUI에 여러 종류의 엔진을 연결하여 사용할 수 있다. 일부 상용 프로그램(예: 체스베이스)은 자체적인 프로토콜을 사용하기도 한다.
- 강도 조절: 많은 엔진과 GUI는 사용자의 수준에 맞춰 엔진의 성능을 제한하는 기능을 제공한다. UCI 프로토콜에는 엔진의 레이팅을 조절하는 매개변수(`uci_limitstrength`, `uci_elo`)가 포함되어 있다. 프리츠와 같은 프로그램은 핸디캡 모드, 펀 모드, 플레이어 수준에 맞춰주는 프렌드 모드 등을 제공하기도 한다.
=== 주요 체스 엔진 ===
수많은 체스 엔진이 개발되었으며, 일부는 오픈 소스로 공개되어 누구나 자유롭게 사용하고 개발에 참여할 수 있다.
엔진 이름 | 개발자/특징 | 비고 |
---|---|---|
Crafty | 로버트 하얏트. Cray Blitz 개발자. | 소스 코드 공개. ICC Dasher에 채용됨. |
GNU Chess | GNU 프로젝트. | 대표적인 오픈 소스 엔진. macOS 기본 체스 앱에 사용됨. 자유 소프트웨어 정신을 상징한다. |
Junior | 아미르 반, 샤이 부신스키 등 (이스라엘). | 1997년 세계 마이크로컴퓨터 선수권 우승, 2002년, 2004년 세계 컴퓨터 체스 선수권 우승. |
Rybka | 바시크 라일리크. | 2007년-2010년 세계 컴퓨터 체스 선수권 연속 우승했으나, 2011년 다른 오픈 소스 엔진(Fruit, Crafty)의 코드를 허가 없이 사용하고 이를 밝히지 않은 사실이 드러나 우승 취소 및 대회 추방 처분을 받았다.[103] 이는 지적 재산권 존중과 연구 윤리의 중요성을 보여주는 사례이다. |
Stockfish | 커뮤니티 기반 개발. | 현재 가장 강력한 엔진 중 하나로 평가받는 대표적인 오픈 소스 엔진. 지속적인 개발과 개선이 이루어지고 있으며, 스마트폰 앱으로도 제공된다. 컴퓨터 쇼기 등 다른 AI 개발에도 영향을 주었다. |
AlphaZero | 딥마인드. | 바둑, 쇼기, 체스 플레이 가능. 인간 기보 없이 강화 학습만으로 스스로 학습하여 단기간에 세계 최강 수준에 도달. 특히 창의적인 플레이 스타일로 주목받았으며, Stockfish를 압도적인 성적으로 이기며 AI 연구에 큰 영향을 미쳤다. |
=== 하드웨어와 성능 ===
체스 엔진의 성능은 알고리즘뿐만 아니라 하드웨어의 처리 능력에도 크게 의존한다. 1970년대에는 주로 슈퍼컴퓨터에서 엔진이 실행되었으나, 하드웨어 기술의 발달로 오늘날에는 개인용 컴퓨터나 스마트폰에서도 매우 강력한 엔진을 구동할 수 있다.
컴퓨터의 처리 속도가 두 배가 되면 엔진의 엘로 레이팅이 약 50~70점 정도 향상되는 것으로 추정된다. 프로세서 속도도 중요하지만, 검색 결과를 저장하고 재활용하는 전치표를 위한 충분한 메모리(RAM) 확보 역시 엔진 성능 향상에 매우 중요한 요소이다.
8. 3. 관련 소프트웨어
체스 소프트웨어는 다양한 형태로 존재한다. 가장 일반적인 것은 사용자와 직접 체스를 두는 프로그램이다. 사용자가 수를 두면, 프로그램의 인공지능(AI)이 다음 수를 계산하여 응수하는 방식으로 게임이 진행된다. 수를 계산하는 체스 엔진과 사용자가 직접 조작하는 그래픽 사용자 인터페이스(GUI)는 별개의 프로그램인 경우가 많다. 이를 통해 사용자들은 하나의 GUI에 여러 다른 스타일의 엔진을 연결하여 다양한 상대와 대결할 수 있다. 엔진 자체는 간단한 텍스트 기반의 명령줄 인터페이스를 가지는 경우가 많으며, GUI는 다양한 디자인의 기물 세트, 보드 스타일, 3D 또는 애니메이션 효과 등을 제공하기도 한다. 현대 체스 엔진의 성능은 매우 뛰어나기 때문에, 일반 사용자가 즐길 수 있도록 엔진의 능력을 일부러 제한하는 기능(핸디캡)을 제공하는 경우가 많다. 유니버설 체스 인터페이스(UCI)를 지원하는 엔진들, 예를 들어 프리츠(Fritz)나 리브카(Rybka) 등은 엔진의 레이팅을 낮추는 설정(UCI의 `uci_limitstrength`, `uci_elo` 매개변수)을 내장하고 있다. 프리츠의 일부 버전에는 핸디캡 및 펀 모드가 있어 엔진의 실력 제한, 실수 확률 조절, 플레이 스타일 변경 등이 가능하다. 또한, 게임 중 사용자의 수준에 맞춰 실력을 조절하는 프렌드 모드를 제공하기도 한다.체스 데이터베이스 소프트웨어는 방대한 양의 과거 기보를 검색하고 분석하며, 통계를 확인하고 자신만의 오프닝 레퍼토리를 구축하는 데 사용된다. 체스베이스(ChessBase)는 프로 선수들 사이에서 널리 사용되는 대표적인 PC용 프로그램이다. 이 외에도 윈도우, 맥, 리눅스용 셰인 체스 정보 데이터베이스(Scid)[3], PC용 체스 어시스턴트(Chess Assistant)[4][5], 안드로이드용 게르하르트 칼라브(Gerhard Kalab)의 체스 PGN 마스터(Chess PGN Master)[6], iOS용 지오다노 비콜리(Giordano Vicoli)의 체스-스튜디오(Chess-Studio)[7] 등 다양한 대안이 있다.
Playchess와 같은 프로그램은 인터넷을 통해 다른 사용자들과 체스를 둘 수 있는 온라인 대국 환경을 제공한다.
체스 훈련 프로그램은 체스 학습을 돕는다. 체스마스터(ChessMaster)는 과거 IM 조시 바이츠킨과 GM 래리 크리스찬센의 튜토리얼을 제공했다. 스테판 마이어-칼렌(Stefan Meyer-Kahlen)은 롭 브루니아(Rob Brunia)와 코르 반 위허르덴(Cor van Wijgerden)의 Step 교재를 기반으로 한 슈레더 체스 튜터(Shredder Chess Tutor)를 제공한다. 전 세계 챔피언 마그누스 칼센의 플레이 마그누스 그룹은 안드로이드 및 iOS용 마그누스 트레이너 앱(Magnus Trainer App)을 출시했다. 체스베이스는 어린이를 위한 프리츠와 체스터(Fritz and Chesster)를 제공한다. 콘벡타(Convekta)는 GM 알렉산더 칼리닌(Alexander Kalinin)과 막심 블로흐(Maxim Blokh)의 튜토리얼을 기반으로 한 CT-ART 및 체스 킹(Chess King) 라인 등 다수의 훈련 앱을 제공한다.
체스 문제를 다루는 소프트웨어도 존재한다.
=== 엔드게임 테이블베이스 ===
체스 엔드게임은 필요한 탐색 깊이가 매우 깊기 때문에 오랫동안 컴퓨터 체스 프로그램의 약점 중 하나였다. 이 문제를 해결하기 위해 특정 기물 조합의 엔드게임 상황을 미리 완전히 분석하여 데이터베이스화한 것이 엔드게임 테이블베이스이다. 이는 역행 분석 기법을 사용하여, 결과가 이미 알려진 상태(예: 체크메이트)에서부터 거꾸로 가능한 모든 수를 탐색하여 각 상황의 정확한 결과를 저장하는 방식으로 생성된다. 켄 톰슨은 이 분야의 선구자 중 한 명이다.
컴퓨터의 분석 결과는 때때로 인간 체스 이론을 뒤집기도 했다. 1977년 톰슨의 벨(Belle) 체스 머신은 킹과 룩 대 킹과 퀸 엔딩 테이블베이스를 이용하여, 이론적으로 패배가 확실시되던 상황에서 여러 마스터들을 상대로 무승부를 이끌어냈다(필리도르 포지션#퀸 대 룩 참조). 이는 당시 일반적인 수비 전략(킹과 룩을 최대한 가깝게 유지하여 패배를 늦추는 것)과는 다른 수를 두었음에도 불구하고 이루어졌다.
대부분의 그랜드마스터는 퀸 대 룩 엔딩에서 컴퓨터와의 대결을 거부했지만, 월터 브라운은 도전을 받아들였다. 완벽하게 플레이하면 30수 안에 퀸 측이 이길 수 있는 포지션에서 대국이 시작되었다. 브라운에게는 50수 안에 승리하지 못하면 50수 규칙에 따라 무승부가 되는 조건으로 2시간 30분이 주어졌다. 45수 진행 후, 브라운은 5수 안에 체크메이트나 룩 포획이 불가능함을 인정하고 무승부에 동의했다. 당시 상황은 체크메이트까지 17수가 더 필요한 상황이었다. 브라운은 이 엔딩을 연구한 뒤 일주일 후 다른 포지션(역시 퀸이 30수 안에 이기는 상황)에서 다시 컴퓨터와 대결했고, 이번에는 50수째에 룩을 잡아 승리했다.
수년 동안 특정 엔딩들은 승리하는 데 50수 규칙에서 허용하는 것보다 더 많은 수가 필요하다는 것이 밝혀지면서, 국제 체스 연맹(FIDE) 규정이 잠시 변경되기도 했으나, 더 많은 예외 상황이 발견되고 인간 플레이어에게는 실질적인 차이가 없다는 점 등을 고려하여 다시 모든 상황에서 50수 규칙이 적용되도록 환원되었다.
에드워드 테이블베이스(Edwards Tablebases), 드 코닝 데이터베이스(De Koning databases), 나리모프 테이블베이스(Nalimov tablebases) 등 다양한 형식의 엔드게임 데이터베이스가 개발되었으며, Rybka, Shredder, Fritz 등 많은 체스 프로그램에서 사용된다. 현재 6개 기물 이하의 모든 엔딩에 대한 테이블베이스가 존재하며[25], 마르크 부르츠추키(Marc Bourzutschky)와 야코프 코노발(Yakov Konoval)은 7개 기물 엔딩을 분석했다.[26] 모스크바 로모노소프 슈퍼컴퓨터를 이용한 프로젝트를 통해 7개 기물 이하의 모든 (사소한 경우 제외) 엔드게임에 대한 테이블베이스가 완성되었다.[27][28] 이 테이블베이스들은 기본적으로 캐슬링이 더 이상 불가능한 상황을 가정한다.
많은 테이블베이스는 50수 규칙을 직접적으로 고려하지 않는다. 이 때문에 "66수 안에 강제 메이트"와 같이 50수 규칙 하에서는 실제 무승부가 될 수 있는 결과를 반환하기도 한다. 이는 추후 규칙이 변경될 경우 테이블베이스를 다시 생성할 필요가 없도록 하기 위함이며, 테이블베이스를 사용하는 프로그램은 이 점을 인지하고 가장 빠른 승리 수를 선택하게 된다.
나리모프 테이블베이스는 데이터 압축 기술을 사용하여 5개 기물 엔딩 전체를 저장하는 데 약 7.05GB의 공간이 필요하며, 6개 기물 엔딩은 약 1.2TB가 필요하다. 7개 기물 테이블베이스는 50TB에서 200TB 사이의 저장 공간이 필요할 것으로 추정된다.[29]
엔드게임 데이터베이스는 1999년 카스파로프 대 세계 인터넷 대국에서 중요한 역할을 했다. 세계 팀이 7개 기물이 남은 퀸과 폰 엔딩에서 무승부를 지키려 할 때, 유진 나리모프가 양측이 퀸 2개씩을 가진 6개 기물 엔딩 테이블베이스를 생성하여 분석에 크게 기여했다.
현재 가장 널리 사용되는 엔드게임 테이블베이스는 시지기(Syzygy)이며, 스톡피시, 릴라 체스 제로, 코모도 등 대부분의 최상위 컴퓨터 프로그램에서 사용된다. 다른 형식에 비해 크기가 작아 7개 기물 테이블베이스 전체가 18.4TB 정도이다.[30] 최신 체스 엔진의 경우, 테이블베이스 사용은 플레이 강도를 약간 향상시키는 정도이다(스톡피시 15 기준, 6개 기물 시지기 테이블베이스 사용 시 약 3 Elo 포인트 상승).[31]
=== 전용 체스 컴퓨터 ===



1970년대 후반부터 1990년대 초반까지는 특정 목적을 위해 설계된 전용 체스 컴퓨터 시장이 활발했다. 그러나 1990년대 중반 이후 개인용 컴퓨터의 프로세서 성능이 급격히 향상되면서 전용 컴퓨터는 경쟁력을 잃게 되었다. 당시 주요 제품들은 다음과 같다.
제조사/브랜드 | 모델/특징 | 비고 |
---|---|---|
Applied Concepts Inc. | 보리스(Boris, 1977), 보리스 디플로맷(Boris Diplomat, 1979) | 기물과 보드 포함 |
Fidelity Electronics | 체스 챌린저(Chess Challenger, 1977-1992) | 초기 모델 세계 마이크로컴퓨터 체스 선수권 대회 4회 우승[72] |
(자체 제작) | 체스머신 | ARM 아키텍처 기반. "The King"(체스마스터 엔진 기반) 또는 기디언(레벨 변형, 1992년 세계 컴퓨터 체스 선수권 대회 우승[73]) 엔진 실행 가능 |
Excalibur Electronics | (다수) | 초보자용 라인업 판매 |
Hegener & Glaser | 메피스토(Mephisto) | 세계 마이크로컴퓨터 체스 선수권 대회 6회 연속 우승 |
노바그(Novag) | 컨스텔레이션(Constellation), 사파이어(Sapphire), 스타 다이아몬드(Star Diamond) 등 | 전술적으로 강력한 라인업 |
Phoenix Chess Systems | (한정판 유닛) | StrongARM, XScale 프로세서 기반. 현대 엔진 실행 및 고전 엔진 에뮬레이션 |
세이텍(Saitek) | (다수) | 중간 수준 유닛 판매. 1994년 Hegener & Glaser 및 메피스토 브랜드 인수 |
최근에는 일부 애호가들이 멀티 에뮬레이터 슈퍼 시스템(MAME) 등을 이용하여 피델리티나 메피스토 컴퓨터용으로 제작된 고전 체스 프로그램을 윈도우 10과 같은 최신 운영 체제에서 실행하기도 한다.[74] 레벨의 개발자 에드 슈뢰더(Ed Schröder)는 자신이 개발했던 메피스토용 프로그램 세 가지를 UCI 엔진으로 개조하여 공개하기도 했다.[75]
=== 과거 MS-DOS 프로그램 ===
다음 프로그램들은 MS-DOS 환경에서 실행되었으며, DOSBox나 Qemu와 같은 에뮬레이터를 통해 현대 운영 체제에서도 실행할 수 있다:[76]
프로그램 이름 |
---|
체스마스터 2000 |
콜로서스 체스 |
프리츠 1–3 |
카스파로프 갬빗 |
레벨 |
사르곤 |
소크라테스 II |
=== 현대 통합 소프트웨어 ===
현재는 유니버설 체스 인터페이스(UCI)와 같은 표준 프로토콜 덕분에 GUI와 사고 엔진을 별도로 개발하는 것이 용이해져 개발 참여가 활발해졌다. 단순한 대국 기능 외에도 기보 분석, 관리 등 다양한 기능을 통합한 소프트웨어가 주류를 이루고 있다.
; Arena Chess GUI
: 무료로 사용할 수 있는 통합형 GUI. 여러 사고 엔진이 기본적으로 포함되어 있다. 국면 분석과 간이 데이터베이스 기능도 갖추고 있으며, 다국어 인터페이스를 지원한다.
; Arasan
: 존 다트(Jon Dart)가 개발한 프로그램. 1994년부터 Windows용으로 개발되었으며 현재는 Linux 버전도 있다. GUI와 엔진이 분리되어 있지만, 다른 엔진을 로드할 수는 없다.
; 체스
: macOS에 기본 탑재된 대국 소프트웨어. 엔진은 GNU Chess를 이용한다.
; Chess Titans
: Vista 이후의 Windows에 탑재되었던 대국 소프트웨어. 자체 엔진을 사용하며 3D 표시를 지원한다. (윈도우 8부터는 기본 탑재되지 않음)
; 체스마스터(ChessMaster)
: 원래 The Software Toolworks사의 제품이었으나 현재는 유비소프트에서 발매하는 통합형 소프트웨어. 조시 바이츠킨 감수의 트레이닝 메뉴 등 학습 기능이 충실하다. PC 외에 Wii, PSP 등 다양한 플랫폼으로 이식되었다. 최신 PC 버전은 2008년 이후 업데이트되지 않았지만 지원은 계속되고 있다.
; ChessV
: Windows용 대국 소프트웨어. 다양한 변칙 체스를 지원하는 것이 특징이다.
; ChessX
: 오픈 소스 통합형 소프트웨어. 여러 데이터베이스 병용, 기보 관리 및 검색 등 다양한 기능을 갖추고 있다. Windows, macOS, Linux를 지원한다.
; 프리츠(Fritz)
: 세련된 인터페이스가 특징인 체스베이스(ChessBase)사의 통합형 소프트웨어. 1995년 개발 중이던 딥 블루에 승리하며 유명해졌다. 현재는 세계 챔피언 수준의 강한 실력을 갖추고 있다.
; Shane's Chess Information Database (Scid)
: Windows, macOS, Linux를 지원하는 무료 통합 GUI. "Arena" 이상의 다기능 소프트웨어로 평가받기도 한다. 버그를 수정한 파생 버전 "Scid vs. PC"가 주로 사용된다.
; Shredder
: 스테판 마이어-칼렌(Stefan Meyer-Kahlen)이 1992년부터 개발 중인 통합형 소프트웨어. 세계 마이크로컴퓨터 체스 선수권 대회에서 여러 차례 우승했다. Windows, macOS, Linux 외에 모바일 버전(iOS, Android)도 있다.
; XBoard 및 WinBoard
: GNU 프로젝트에서 개발된 무료 대국 소프트웨어. XBoard는 유닉스 계열 OS용, WinBoard는 Windows용이다. 간이 기보 편집 기능은 있지만 데이터베이스 기능은 없다. 변칙 체스 외에 쇼기(일본 장기)와 샹치(중국 장기)도 지원한다.
=== 일본 특화 소프트웨어 ===
일본 시장을 대상으로 개발된 소프트웨어도 있다.
; 최강 은성 체스 (最強銀星チェス)
: 실버스타 재팬(SilverStar Japan)에서 개발한 Windows용 소프트웨어. 패키지 및 다운로드 판매.
; 체스 챔피언십 토너먼트 (チェスチャンピオンシップトーナメント)
: 언밸런스(Unbalance)에서 개발. 네트워크 대국 및 일부 변칙 체스 지원.
; 체스 프로그램 (チェスプログラム) (COMPAC)
: MZ-80B용으로 1982년 발매된, 일본 최초의 상업용 개인 컴퓨터 체스 소프트웨어로 알려져 있다.
; 통신 대국 월드 체스 (通信対局 ワールドチェス)
: 닌텐도에서 Wii웨어로 발매했던 소프트웨어. 엔진은 Fritz Reul의 "Loop"를 사용했다.
=== 데이터베이스 및 보조 소프트웨어 ===
기보 관리, 분석, 문제 작성 등에 특화된 소프트웨어들도 있다.
; ChessBase
: 프리츠와 같은 체스베이스(ChessBase)사에서 판매하는 데이터베이스 전문 소프트웨어. 프리츠와 유사한 인터페이스를 가지며, 엔진을 이용한 분석 기능을 제공한다. 데이터베이스 규모에 따라 여러 버전이 있으며, 기능 제한 무료 버전 'ChessBase Light'도 있다.
; dove
: 일본 통신 체스 협회(JCCA)에서 무료로 배포하는 Windows용 도면 작성 소프트웨어. PGN 형식의 텍스트나 화면에 배치된 기물 상태를 GIF 이미지나 아스키 아트로 변환할 수 있다. PGN 파일을 직접 읽지는 못하고 클립보드를 통해 데이터를 주고받는다.
; Pigeon Log
: dove와 마찬가지로 JCCA에서 배포하는 Windows용 PGN 태그 편집기. 자체 형식(`.pld`) 외의 PGN 파일은 클립보드를 통해 처리한다. 기보 분기나 분석 기능은 없지만 프로그램이 가볍고 메뉴가 한국어를 지원한다. 다른 소프트웨어가 기보에 추가하는 평가치/시간 정보 등을 자동으로 제거하는 기능도 있다.
; ChessExplorer
: 체스 문제 작성 및 평가에 특화된 Windows용 무료 소프트웨어. 자체 파일 형식과 FEN 표기법을 지원하며 다국어를 지원한다.
8. 4. 온라인 체스
Playchess와 같은 프로그램을 통해 플레이어들은 인터넷을 통해 서로 체스를 둘 수 있다.1997년, 인터넷 체스 클럽(Internet Chess Club, ICC)은 웹 브라우저 내에서 다른 사람들과 온라인으로 체스를 둘 수 있는 최초의 자바 클라이언트를 출시했다.[80] 이것은 초창기 체스 웹 앱 중 하나로 여겨진다. 자유 인터넷 체스 서버(Free Internet Chess Server, FICS)도 곧 비슷한 클라이언트를 내놓았다.[81]
2004년에는 국제 통신 체스 연맹(International Correspondence Chess Federation, ICCF)이 기존의 이메일 기반 시스템을 대체하기 위해 웹 서버를 열었다.[82]
Chess.com은 2007년에 라이브 체스 서비스를 시작했으며,[83] 체스베이스(Chessbase)와 플레이체스(Playchess)는 오랫동안 다운로드 가능한 클라이언트를 사용해 왔으나, 2013년에 웹 기반 클라이언트를 추가했다.[84]
일부 체스 엔진도 온라인 플레이 기능을 제공한다. 2006년부터 슈레더(Shredder) 엔진과 온라인으로 체스를 둘 수 있게 되었고,[92] 2015년에는 체스베이스(Chessbase)가 프리츠(Fritz) 웹 앱과 사용자의 게임을 저장할 수 있는 마이 게임(My Games) 기능을 추가했다.[93][94]
온라인 체스 플랫폼들은 단순 대국 기능 외에도 다양한 웹 앱 형태의 부가 서비스를 제공하기도 한다. 예를 들어, 온라인 체스 전술 훈련[85][86][87][88], 방대한 기보를 검색할 수 있는 온라인 데이터베이스[89][90][91], 유명 그랜드마스터들이 참여한 온라인 교육 콘텐츠[95] 등이 있다.
9. 신경망 혁명
인공 신경망은 1980년대 후반부터 NeuroChess, Morph, Blondie25, Giraffe, 알파제로, 뮤제로와 같은 체스 엔진의 평가 함수에 사용되어 왔다.[43][44][45][46][47] 그러나 2020년 여름 효율적으로 업데이트 가능한 신경망(NNUE)이 등장하기 전까지는 체스 엔진에서 널리 사용되지 않았다. NNUE는 2018년 컴퓨터 쇼기 분야에서 유 나스에 의해 처음 개발되었으며,[48][49] 2020년 5월 31일 스톡피쉬의 파생 버전인 Stockfish NNUE에 처음 이식되었다.[50] 이후 2020년 8월 6일 공식 스톡피쉬 엔진에 통합되면서[51][52] 다른 체스 프로그래머들도 신경망을 자신의 엔진에 채택하기 시작했다.
왕립 학회의 벤키 라마크리슈난과 같은 일부 인사들은 알파제로가 체스 엔진에서의 신경망 도입을 주도했다고 보기도 한다.[53] 하지만 알파제로가 신경망을 사용하기 시작한 엔진들에 미친 영향은 제한적이었으며, 주로 알파제로 논문을 재현하려는 릴라 체스 제로와 같은 새로운 실험적 엔진들에 영향을 주었다. 알파제로의 평가 함수에 사용된 심층 신경망은 기존 체스 엔진과 호환되지 않는 고가의 GPU를 필요로 했다. 대부분의 체스 엔진은 CPU만을 사용하며, GPU에서 정보를 계산하고 처리하기 위해 필요한 엔비디아의 CUDA와 같은 특수 라이브러리에 접근할 수 없었다. 따라서 코모도나 스톡피쉬와 같은 대다수의 주요 체스 엔진들은 2020년 NNUE가 컴퓨터 체스에 이식될 때까지 전통적인 수작업 평가 함수를 계속 사용했다. NNUE는 GPU나 CUDA 같은 라이브러리를 전혀 필요로 하지 않아 기존 엔진에 쉽게 통합될 수 있었다. 현재 컴퓨터 체스에 사용되는 신경망은 비교적 얕은 구조이며, 알파제로가 개척한 심층 강화 학습 방법은 여전히 컴퓨터 체스 분야에서 널리 사용되지 않고 있다.
참조
[1]
웹사이트
Checkers, Solved!
https://spectrum.iee[...]
Institute of Electrical and Electronics Engineers
2007-07-02
[2]
간행물
Is chess the drosophila of artificial intelligence? A social history of an algorithm
https://pubmed.ncbi.[...]
[3]
웹사이트
SCID
http://scid.sourcefo[...]
[4]
웹사이트
Chess Assistant Chess Website:: About Us
http://www.convekta.[...]
[5]
웹사이트
ExaChess for Mac
http://www.exachess.[...]
[6]
웹사이트
Chess PGN Master
http://kalab.com/pgn[...]
[7]
Facebook
chessstudioapp
https://www.facebook[...]
2022-03
[8]
간행물
Heuristic problem solving: The next advance in operations research
https://home.mis.u-p[...]
1958
[9]
뉴스
Chess 4.7 versus David Levy
https://archive.org/[...]
1978-12
[10]
뉴스
SPOC / The Chess Master
https://archive.org/[...]
1984-03
[11]
뉴스
Chess Championship: Machines Play, People Watch
http://www.cgwmuseum[...]
1982-01
[12]
웹사이트
Rebel vs Anand
http://www.rebel.nl/[...]
Rebel.nl
2010-04-03
[13]
웹사이트
Chess News – Adams vs Hydra: Man 0.5 – Machine 5.5
http://www.chessbase[...]
ChessBase.com
2010-04-03
[14]
뉴스
Once Again, Machine Beats Human Champion at Chess
https://www.nytimes.[...]
New York Times
2006-12-05
[15]
뉴스
Once Again, Machine Beats Human Champion at Chess
https://www.nytimes.[...]
2006-12-05
[16]
웹사이트
Computer Chess: The Drosophila of AI
http://www.ddj.com/h[...]
2002-10-30
[17]
문서
Deep Thought wins Fredkin Intermediate Prize
http://www.aaai.org/[...]
[18]
웹사이트
Pocket Fritz 4 wins Copa Mercosur
https://theweekinche[...]
Chess.co.uk
2010-04-03
[19]
문서
Pocket Fritz 4 searches less than 20,000 positions per second.
http://hiarcs.net/fo[...]
[20]
웹사이트
World chess champion Magnus Carlsen: 'The computer never has been an opponent'
http://www.dw.com/en[...]
Deutsche Welle
2016-08-26
[21]
뉴스
20 Years Later, Humans Still No Match For Computers On The Chessboard
https://www.npr.org/[...]
2016
[22]
뉴스
Computer chess bad-human chess worse
https://books.google[...]
1982-12-23
[23]
뉴스
A Computer Chess Tutorial
https://archive.org/[...]
1978-10
[24]
문서
Shannon
1950
[25]
웹사이트
Endgame Tablebases Online
http://kirill-kryuko[...]
Kirill-kryukov.com
2010-04-03
[26]
웹사이트
Open chess diary 301–320
http://www.xs4all.nl[...]
Xs4all.nl
2010-04-03
[27]
웹사이트
Lomonosov website allowing registered user to access 7-piece tablebase, and a forum with positions found.
http://tb7.chessok.c[...]
[28]
웹사이트
Who wins from this? (chess puzzle)
https://www.chess.co[...]
[29]
웹사이트
The Rybka Lounge / Computer Chess / Tablebase sizes
http://rybkaforum.ne[...]
2017-06-27
[30]
웹사이트
7-piece Syzygy tablebases are complete
https://lichess.org/[...]
2023-10-02
[31]
웹사이트
Useful data
https://github.com/o[...]
2023-10-12
[32]
웹사이트
TCEC Openings FAQ
https://tcec-chess.c[...]
2023-10-12
[33]
Citation
CEGT 40/20
http://www.husvankem[...]
Chess Engines Grand Tournament
2008-10-12
[34]
Citation
Computerschach und Spiele – Eternal Rating
http://www.computers[...]
Computerschach und Spiele
2007-03-18
[35]
Citation
The SSDF Rating List
http://ssdf.bosjo.ne[...]
Swedish Chess Computer Association
2008-09-26
[36]
웹사이트
BayesianElo Ratinglist of WBEC Ridderkerk
http://wbec-ridderke[...]
2008-07-20
[37]
웹사이트
Gambit Rating List
https://rebel13.nl/m[...]
Home of the Dutch Rebel
2021-01-30
[38]
웹사이트
FGRL
http://fastgm.de
FastGM's Rating List
2010-12-12
[39]
웹사이트
IPON
https://web.archive.[...]
Ingo Bauer
2016-11-16
[40]
웹사이트
CCRL
http://ccrl.chessdom[...]
2021-11-14
[41]
웹사이트
CCRL Discussion Board
http://kirill-kryuko[...]
2012-06-19
[42]
웹사이트
Adam's Computer Chess Pages
http://adamsccpages.[...]
2012-06-19
[43]
서적
Learning to Play the Game of Chess
https://proceedings.[...]
MIT Press
2021-12-12
[44]
간행물
A Self-Learning, Pattern-Oriented Chess Program
ICCA Journal
[45]
간행물
Giraffe: Using Deep Reinforcement Learning to Play Chess
2015-09-04
[46]
arXiv
Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
[47]
간행물
Mastering Atari, Go, chess and shogi by planning with a learned model
[48]
웹사이트
Efficiently Updatable Neural-Network-based Evaluation Function for computer Shogi
https://www.apply.co[...]
2018-04-28
[49]
웹사이트
Efficiently Updatable Neural-Network-based Evaluation Function for computer Shogi (Unofficial English Translation)
https://github.com/a[...]
2018-04-28
[50]
웹사이트
Release stockfish-nnue-2020-05-30
https://github.com/n[...]
2020-05-30
[51]
웹사이트
Introducing NNUE Evaluation
https://blog.stockfi[...]
2020-08-06
[52]
웹사이트
"official-stockfish / Stockfish, NNUE merge"
https://github.com/o[...]
2020-07-25
[53]
서적
Possible Minds: Twenty-five Ways of Looking at AI
Penguin Press
2019
[54]
문서
Chess, a subsection of chapter 25, Digital Computers Applied to Games, of Faster than Thought, ed. B. V. Bowden, Pitman, London (1953).
https://web.archive.[...]
[55]
웹사이트
A game played by Turing's chess algorithm
http://www.chessgame[...]
[56]
웹사이트
Chessville – Early Computer Chess Programs – by Bill Wall – Bill Wall's Wonderful World of Chess
http://www.chessvill[...]
Archive.is
2014-12-01
[57]
웹사이트
David Bronstein v M-20, replay at Chessgames.com
http://www.chessgame[...]
[58]
간행물
Ken, Unix and Games
https://www.bell-lab[...]
2001-06
[59]
웹사이트
Appendix CHESS 4.5: Competition in 1976
https://link.springe[...]
[60]
웹사이트
Oral History of Peter Jennings | Mastering the Game | Computer History Museum
https://www.computer[...]
[61]
뉴스
New Restrictions
https://archive.org/[...]
1981-01
[62]
웹사이트
GNU's Bulletin, vol. 1 no. 2
https://web.cecs.pdx[...]
[63]
문서
Hsu (2002) p. 292
[64]
문서
Newborn (1997) p. 159
[65]
문서
Selective Search. June 1990
[66]
웹사이트
International Paderborn Computer Chess Championship 2005
http://www.rybkaches[...]
[67]
웹사이트
Challenger uses supercomputer at the world chess championship
http://www.chessbase[...]
Chessbase
2010-05-25
[68]
웹사이트
Rybka disqualified and banned from World Computer Chess Championships | ChessVibes
http://www.chessvibe[...]
[69]
뉴스
A Gross Miscarriage of Justice in Computer Chess (part one)
http://www.chessbase[...]
2012-01-02
[70]
문서
"ƎUИИ Efficiently Updatable Neural-Network based Evaluation Functions for Computer Shogi"
https://github.com/y[...]
2018
[71]
웹사이트
TCEC season 15
https://cd.tcecbeta.[...]
[72]
웹사이트
Fidelity Chess Challenger 1 – World's First Chess Computer
http://www.ismenio.c[...]
2016-09-25
[73]
간행물
The 7th World Computer-Chess Championship: Report on the tournament, Madrid, Spain, November 23-27, 1992
https://research.til[...]
[74]
웹사이트
Download | Home of the Dutch Rebel
http://rebel13.nl/re[...]
Rebel13.nl
2022-08-31
[75]
웹사이트
Dedicated as UCI | Home of the Dutch Rebel
http://rebel13.nl/de[...]
Rebel13.nl
2022-08-31
[76]
웹사이트
More DOS oldies
http://rebel13.nl/do[...]
2018-12-02
[77]
웹사이트
Dr. Robert Hyatt's home page
http://www.cis.uab.e[...]
Cis.uab.edu
2004-02-01
[78]
Citation
Programming a Computer for Playing Chess
http://archive.compu[...]
2008-12-30
[79]
Citation
Computing a perfect strategy for n×n chess requires time exponential in n
[80]
웹사이트
CoffeeHouse: The Internet Chess Club Java Interface
http://www.chessclub[...]
2019-07-08
[81]
웹사이트
FICS - Free Internet Chess Server
http://www.freechess[...]
2019-07-08
[82]
웹사이트
Archived copy
http://www.iccf-webc[...]
2004-08-31
[83]
웹사이트
Play Daily (Correspondence) Chess
http://www.chess.com[...]
[84]
웹사이트
Play Chess Online for Free
http://play.chessbas[...]
2022-01-11
[85]
웹사이트
Chess Tactics Server
http://chess.emrald.[...]
2006-04-08
[86]
웹사이트
Chess Tactics
http://chesstempo.co[...]
2007-06-13
[87]
웹사이트
Chess Puzzles - Improve Your Chess by Solving Tactics
http://www.chess.com[...]
2008-02-18
[88]
웹사이트
Chess Tactics Online
http://training.ches[...]
[89]
웹사이트
Chessbase Online, Searching a high quality database of Chessgames. Free Chess Games.ChessBase-Online
http://www.chessbase[...]
2022-01-11
[90]
웹사이트
Java chess games: Database search, analysis
http://www.chesslab.[...]
2019-07-08
[91]
웹사이트
NICBase Online
http://www31.ws26.te[...]
2002-10-08
[92]
웹사이트
Play Chess Online - Shredder Chess
http://www.shredderc[...]
2006-12-05
[93]
웹사이트
Home
http://fritz.chessba[...]
[94]
웹사이트
Home
http://mygames.chess[...]
[95]
웹사이트
Chess Lessons - Learn with Online Courses
http://www.chess.com[...]
2007-12-14
[96]
서적
Twisty Little Passages: An Approach to Interactive Fiction
MIT Press
[97]
기타
The History of Computer Chess: An AI Perspective
Computer History Museum
2005-09-08
[98]
기타
Remembering A.S. Kronrod
null
Stanford University School of Engineering
[99]
뉴스
朝日新聞
朝日新聞
[100]
웹사이트
カスパロフ氏対ディープ・ブルー 試合のルール
http://park.org/Japa[...]
日本IBM
2015-05-08
[101]
뉴스
Stockfish Outlasts "Rybkamura"
http://www.chess.com[...]
2014-08-24
[102]
웹사이트
The 2015 Arimaa Challenge
http://arimaa.com/ar[...]
arimaa.com
2015-05-14
[103]
뉴스
世界最強のチェスプログラム「Rybka」盗用発覚で優勝剥奪
http://slashdot.jp/i[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com